Après avoir lu ce message Entité de relation de carte JPA Parentid J'ai essayé de l'appliquer à mon code mais cela n'a pas fonctionné pour moi.
Ceci est le code que j'ai dans mon objet p> maintenant c'est le test i exécuté p> Cette ligne du test échoue toujours. P> basé sur la configuration que j'ai pour mes relations, hibernate ne peut pas récupérer la sous-catégorie et Je ne sais pas pourquoi. Maintenant, j'espère vraiment vraiment que ce n'est pas quelque chose de stupide de ma part parce que je vais me tirer dessus (même si c'est tard et je suis fatigué). Au fait, cela ne vous dérange pas des variables publiques dans le code, j'utilise Jouer! (Playframework) et il s'occupe de l'encapsulation. Merci d'avance pour toute aide p> p>
3 Réponses :
Le code indiqué dans votre question n'ajoute rien à donc, si je comprends (et lisez) votre code correctement, hibernate ne (pas) récupérer les sous-catégories car il reste vide après avoir appelé Sous-catégories code>. Il ne l'initialise que par une liste vide. Je pense que vous avez besoin de quelque chose comme neuf Catégorie (sportcat, "hockey", faux) .Save (); code> p> p>
Vous vous attendiez probablement à suffire à ajouter l'entité mère à l'enfant, mais d'après ce que j'ai vu, Hibernate vous oblige à maintenir les deux extrémités d'une relation unique. P>
En d'autres termes, vous devez ajouter la catégorie enfant à la liste des catégories des parents. P>
C'est décrit ici: http: // docs.jboss.org/hibernate/core/3.3/reference/fr/html/example-parentchild.html#example-parentchild-bidir P>
Et aussi ici (avec un problème de mise en cache supplémentaire): hibernate @onetoMany avec mappeby (enfant parent-enfant) et problème de cache p>
Ce n'est pas un problème de cartographie des parents et de l'enfant à la même classe. - le problème est que vous devez maintenir les deux extrémités de la relation bidirectionnelle à la main.
child.setParent(parent) parent.addChild(child)
C'est exactement ce que j'ai fait. J'ai ajouté une méthode pour ajouter une sous-catégorie à une catégorie mère. J'ai modifié mon test en conséquence et cela fonctionne exactement comme je le veux maintenant. Merci beaucoup Ralph. Et merci à tout le monde pour y avoir des réponses.