2010-10-19 3 views
0

Предположим, у меня есть таблица foo, table bar и table zoo. foo имеет панель элементов и между ними существует взаимно-однозначное отношение. В баре есть список, и между ними существует одно-много отношений.Hibernate - ассоциация второго уровня

Список не инициализируется автоматически при чтении строки (т. Е. Ленив) Использование hql Я хотел бы получить список объектов foo с инициализированным зоной в баре.

так что-то на линии:

select f from Foo f 
left join fetch f.bar.zoo 

это явно бросает исключение, и я понимаю, что это потому, что владелец возвращается в Foo, а не бар. Тем не менее мне нужен Foo, а не Bar, и мне нужен зоопарк для инициализации. Есть ли способ сделать это в одном запросе?

Благодаря Jill

+0

Мой HQL-х ржавый, но это на самом деле выглядит нормально для меня. Вы должны опубликовать хотя бы трассировку стека из исключения. – Ladlestein

ответ

0

должно работать:

FROM Foo f 
    LEFT JOIN FETCH f.bar b 
    LEFT JOIN FETCH b.zoos 
+0

попытался, но теперь я получаю исключение нулевого указателя. на втором левом соединении. – Jill

+0

@Jill Пожалуйста, покажите сопоставления, позволяющие воспроизводить. Я попытался с некоторыми сущностями, и я получил ожидаемый результат. –