récuperer la clé primaire génerée automatiquement
Bonjour à tous.
j'ai crée une Entity avec un ID qui est généré automatiquement avec l'annotation @GeneratedValue(strategy = GenerationType.AUTO)
ma question est : commment récupérer l'ID juste aprés la création de l'enregistrement (j'ai besoin d'imprimer l'enregistrement au moment même de sa création, et je voulais savoir s'il y a une methode autre que de faire une requête qui contient les informations qui identifient l'enregistrement de façon unique).
Je vous remercie d'avance pour votre aide.
1 solution pour récupérer l'id généré automatiquement
D'après ce que j'ai vu, lorsque tu mets la génération de l'id en auto, il se crée au moment où tu fais le persist.
Ce qui me parait logique vu que c'est le SGBD derrière qui génére la valeur au moment où il fait l'instruction INSERT
Le truc est de modifier ta fonction dans ton SessionBean qui fait le persist par le code suivant :
Code:
1 2 3 4 5
|
public MyEntity addMyEntity(MyEntity myEntity) {
em.persist(myEntity);
return myEntity;
} |
Comme cela, après tu peux invoquer la méthode getId pour récupérer ton id.
Si tu cherches aussi à mettre à jour un enregistrement de ton entity, il faut utiliser la méthode merge de la classe EntityManager (j'ai chercher un moment avant de la trouver celle-là ;))