Mysql
 sql >> Database >  >> RDS >> Mysql

Specificare manualmente il valore di una chiave primaria nella colonna JPA @GeneratedValue

Funziona con eclipselink. Creerà una tabella separata per la sequenza, ma ciò non dovrebbe rappresentare un problema.

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

GenerationType.AUTO sceglierà la strategia di generazione ideale. Poiché il campo è specificato come inseribile e aggiornabile, verrà utilizzata una strategia di generazione TABLE. Ciò significa che eclipselink genererà un'altra tabella contenente il valore della sequenza corrente e genererà la sequenza stessa invece di delegarla al database. Poiché la colonna è dichiarata inseribile, se id è nullo durante la persistenza, eclipselink genererà l'id. In caso contrario, verrà utilizzato l'ID esistente.