Bonjour,

J'utilise JPA avec Hibernate et j'ai un problème au niveau de la méthode merge de l'entity manager.

J'ai créé une table "personne" ainsi qu'une table "adresse" qui sont liées par une relation de type "ManyToMany" avec un cascadetype.ALL de personne vers adresse.

Si je créé une personne à laquelle j'affecte des adresses puis j'utilise la méthode persist alors la personne et les adresses sont persistés correctement.

Par contre, si je veux rajouter une adresse à une personne existante :

personne1.setAdresse(nvlleadresse);
entitymanager.merge(personne1);

La nouvelle adresse est bien rajoutée dans la base de donnée (avec un id généré automatiquement) mais lorsque j'essaye de récupérer cet id avec une méthode getId() de mon objet nvlleadresse, j'obtient le résultat "null".

Pourquoi l'id n'est-il pas affecter automatiquement à mon objet lors du merge ? Faut-il obligatoirement faire un persist sur la nouvelle adresse avant d'effectuer un merge sur la personne ?

Merci d'avance pour votre aide.