гибернация результатов и путаница в отображении - PullRequest
0 голосов
/ 02 ноября 2010


У меня была проблема с получением результата через спящий режим.
У меня есть четыре таблицы SnsUser, Участник, Взаимодействие, Контент; SnsUser & Interaction имеет отношение «многие-2-многие», а «Взаимодействие и контент» - «многие-2-один». (SnsUser и Interation получили набор участников в этих классах отображения, hibernate делает для многие-2-многие)

когда я запускаю HQL как

from SnsUser s join fetch s.participants p join fetch p.interaction i join fetch i.content c where s.blessUid=1

(возвращение списка List (SnsUser))

это дает мне, скажем, 10 строк, и в каждой строке (т. Е. SnsUser) 10 участников в качестве участника.

Но когда я бегу как HQL, как

from Participant p join fetch p.snsUser s join fetch p.interaction i join fetch i.content c where s.blessUid=1

это дает мне 10 строк, и я могу получить из него соответствующий SnsUser. НО когда я смотрю на фактический запрос sql, то же самое для обоих. Почему он так себя ведет ...?

ответы будут оценены. аль

1 Ответ

0 голосов
/ 03 ноября 2010

Я скептик, оба запроса не должны быть одинаковыми (один должен выполняться с таблицей SnsUser, а другой должен выполняться с таблицей Participant).

И поскольку я доверяю только тому, что вижу, я не передумаю, пока вы не покажете сгенерированные запросы (и отображение, позволяющее полностью понять модель).

...