2013-06-11 153 views
-1

如何創建NHibernate的查詢時,應該像下面的SQL查詢NHibernate的,LEFT OUTER JOIN

select * from A 
left outer join B on A.ID = B.ID 
left outer join C on B.ProdID = C.ProdID 

不幸的是,我不能使用命名查詢。 A的映射應該是什麼樣子?

謝謝。

+0

可能重複的[NHibernate的左外連接(http://stackoverflow.com/questions/2756148/nhibernate-left-outer-join ) – Peter

+0

有一個稱爲[NHibernate映射生成器](http://nmg.codeplex.com/)的niffty工具。它可以幫助您使用XML,流利和ByCode映射樣式的語法。 – Justin

+0

請添加您當前的映射。 –

回答

0

將B映射爲A的多對一屬性。B到C關係似乎不是常規外鍵,並且不能映射爲屬性。所以它不能留在外面加入。

HQL,C不能左外加入:

select * 
from A a 
    left join a.B b, 
    C c 
where 
    c.Description = b.Description 
+0

對不起,對於問題的不好解釋,我做了一些編輯,ProdId是表B的外鍵。 – Yanol

+0

爲什麼不能?它非常強大。 –