2011-08-20 55 views
1

我有一個NHibernate項目中的幾個一對多映射,配置爲使用Sets什麼影響NHibernate使用外部連接而不是內部連接?

沒有做項目,而max_fetch_depth設置爲2,NHibernate似乎總是使用外部連接而不是內部連接。

這是有原因嗎?映射結構相當於:

Category 
    +- Document.Category 
    +- Document.User 

只是一個普通的一對多設置。

回答

6

如果Nhibernate做了內部連接,那意味着沒有文檔的Categorys將不會被獲取。
這就是爲什麼nHibernate總是使用外連接,除非你特別查詢。

+0

有意義,儘管這大概意味着NHibernate會帶回比它需要更多的行,除非您自己編寫所有集合查詢? –

+1

不,你爲什麼這麼說?你不需要不包含任何'Document's的'Category'行嗎? –

+0

@sJohnny我可以明白爲什麼它現在做,因爲它適合大多數場景。儘管如此,這確實創造了一個巨大的記錄。但我想你打算通過自定義條件查詢來處理這些問題 –