Mysql
 sql >> Base de données >  >> RDS >> Mysql

Spécifiez manuellement la valeur d'une clé primaire dans la colonne JPA @GeneratedValue

Cela fonctionne avec eclipselink. Cela créera une table séparée pour la séquence, mais cela ne devrait pas poser de problème.

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

GenerationType.AUTO choisira la stratégie de génération idéale. Puisque le champ est spécifié comme insérable et modifiable, une stratégie de génération de TABLE sera utilisée. Cela signifie qu'eclipselink générera une autre table contenant la valeur de séquence actuelle et générera la séquence elle-même au lieu de la déléguer à la base de données. Puisque la colonne est déclarée insérable, si id est nul lors de la persistance, eclipselink générera l'id. Sinon, l'identifiant existant sera utilisé.