Si l'on a une entité Foo et un appel persist (foo), l'ID @Id est automatiquement défini sur l'entité. Toutefois, si ladite entité Foo possède une collection de barres qui lui sont liés parComment récupérer l'ID d'une entité persistée via cascade avec JPA
(...)
@OneToMany(cascade=Cascade.ALL)
Set<Bar> getBars()
(...)
et ce cas est déjà persisté, si l'on crée une nouvelle barre et l'ajouter à la collection Les barres de foo et appels de fusion (foo) la barre juste créée est persistante, mais son @Id n'est pas mis à jour!
Y at-il un moyen de récupérer cet ID, sans faire un appel ultérieur à trouver (Foo.class, foo.getId())?
Alors, comment puis-je mettre à jour ces objets? – user43845
Que se passe-t-il si vous enregistrez l'objet Foo, puis examinez l'instance de Foo qui est retournée à partir de merge()? Les objets Bar ont-ils leurs propriétés d'ID définies? Sinon, vous devrez peut-être appeler flush() sur votre EntityManager, en fonction de la façon dont vous manipulez le @Id for Bar. –
Désolé, dans la première phrase, j'aurais dû dire "ce qui se passe si vous fusionnez l'objet Foo" –