sql >> Databasteknik >  >> RDS >> Mysql

Ange värdet för en primärnyckel manuellt i kolumnen JPA @GeneratedValue

Detta fungerar med eclipselink. Det kommer att skapa en separat tabell för sekvensen, men det borde inte utgöra något problem.

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id", insertable=true, updatable=true, unique=true, nullable=false)
private Long id;

GenerationType.AUTO kommer att välja den ideala generationsstrategin. Eftersom fältet är specificerat som insättningsbart och uppdateringsbart kommer en TABLE-genereringsstrategi att användas. Detta innebär att eclipselink kommer att generera en annan tabell med det aktuella sekvensvärdet och generera själva sekvensen istället för att delegera den till databasen. Eftersom kolumnen förklaras infogningsbar, om id är null när den består, kommer eclipselink att generera id. Annars kommer det befintliga ID:t att användas.



  1. En affärsdatamodell för prenumeration

  2. Sortera NULL-värden till slutet av en tabell

  3. MySQL LIKE IN()?

  4. 7 sätt att returnera dubbletter av rader som har en primärnyckel i MariaDB