Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Geben Sie den Wert eines Primärschlüssels manuell in der JPA-Spalte @GeneratedValue an

Das funktioniert mit Eclipselink. Es wird eine separate Tabelle für die Sequenz erstellt, aber das sollte kein Problem darstellen.

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

GenerationType.AUTO wählt die ideale Generierungsstrategie. Da das Feld als einfügbar und aktualisierbar angegeben ist, wird eine TABLE-Generierungsstrategie verwendet. Das bedeutet, dass Eclipselink eine weitere Tabelle generiert, die den aktuellen Sequenzwert enthält, und die Sequenz selbst generiert, anstatt sie an die Datenbank zu delegieren. Da die Spalte als einfügbar deklariert ist, generiert Eclipselink die ID, wenn die ID beim Persistieren null ist. Andernfalls wird die vorhandene ID verwendet.