0


我在通过休眠获得结果时遇到问题。
我有四个表SnsUser、Participant、Interaction、Content;SnsUser & Interaction 有many-2-many 关系,Interaction 和Content 有many-2-one。(SnsUser 和 Interation 在映射类中获得了 Set of Participant,hibernate 对 many-2-many 有效)

当我像运行 HQL

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

(返回列表(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 查询时,两者都是相同的。为什么它的行为是这样的......?

答案将不胜感激。人

4

1 回答 1

0

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

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

于 2010-11-03T04:43:55.270 回答