У меня есть простая модель данных в JPA (hibernate), состоящая из многих отношений один к одному и один к одному, подобных этой:
город -> штат -> губернатор -> нация -> континент
где город много в одном штате, штат один в один для губернатора, губернатор много в один для нации и нация много в один для континента.
Я хотел бы получить экземпляр одного города по его уникальному идентификатору, а также с нетерпением получить информацию о соответствующем штате, губернаторе, нации и континенте с помощью ejbql. Я считаю, что правильный ejbql:
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 генерирует правильный sql из этого ejbql, но когда я делаю myTown.getState (). GetGovernor (). Я возвращаю нулевой объект моему губернатору. Почему спящий не заселяет губернатора? Кажется, что он не хочет заполнять объекты более чем на один уровень вверх по дереву. Кто-нибудь видит, что я делаю не так?