2010-11-02 210 views
0


我在通過hibernate獲取結果時遇到了問題。
我有四個表格SnsUser,Participant,Interaction,Content; SnsUser &交互有許多2多關係,交互和內容有很多2。 (SnsUser和互爲作用得到了在那裏映射類設置參加者,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 

(返回列表(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查詢時,它們都是相同的。爲什麼它的行爲如此......?

答案將不勝感激。 al

回答

0

我很懷疑,兩個查詢都不應該是一樣的(一個應該針對SnsUser表執行,另一個應針對Participant表執行)。因爲我只相信我所看到的內容,所以在顯示生成的查詢(以及允許完全理解模型的映射)之前,我不會改變主意。

+0

是的。我應該說類似的。連接條件相同。所以問題是,當我從SnsUser運行時,我是否會始終使用Set填充? – Deam 2010-11-03 15:52:03

+0

@ user330281:我需要映射和對象模型來進一步評論。 – 2010-11-03 16:16:33