我在通过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查询时,两者都是一样的。为什么它表现得像这样......?
答案将不胜感激。 人
答案 0 :(得分:0)
我很怀疑,两个查询都不应该相同(一个应该针对SnsUser
表执行,另一个应该针对Participant
表执行。
因为我只相信我看到的内容,所以在显示生成的查询(以及允许完全理解模型的映射)之前,我不会改变主意。