hibernate结果集和映射混淆

时间:2010-11-02 10:59:44

标签: sql hibernate hql mappings


我在通过hibernate获取结果时遇到了问题。
我有四个表SnsUser,Participant,Interaction,Content; SnsUser&交互有很多2对多的关系,而交互和内容有很多2对1。 (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 :(得分:0)

我很怀疑,两个查询都不应该相同(一个应该针对SnsUser表执行,另一个应该针对Participant表执行。

因为我只相信我看到的内容,所以在显示生成的查询(以及允许完全理解模型的映射)之前,我不会改变主意。