J'ai un modèle de données simple dans JPA (veille prolongée) composé de plusieurs à un et à une relation semblable à ceci:Quelle est la syntaxe correcte pour une requête EJBQL qui traverse quatre niveaux de plusieurs relations individuelles
ville -> état -> gouverneur -> nation -> continent
où la ville est à plusieurs à déclarer, l'État est un à un au gouverneur, le gouverneur est un à un à la nation et la nation est à un à un continent.
Je voudrais chercher une seule instance de la ville par son Id unique et aussi avec impatience chercher son état lié, gouverneur, nation et continent à l'aide EJBQL. Je crois que le bon EJBQL est:
select t from town t
join fetch t.state s
join fetch s.governor g
join fetch g.nation n
join fetch n.continent c
where t.id=?id
Hiberante génère le code SQL correct de ce EJBQL, mais quand je fais myTown.getState() getGovernor().. Je récupère un objet nul pour mon gouverneur. Pourquoi hibernate ne remplit pas le gouverneur? Il semble qu'il ne veut pas peupler les objets de plus d'un niveau dans l'arbre. Quelqu'un voit-il ce que je fais mal?