2009-05-04 67 views
0

是否有可能通過父子關係或多對多關係在兩個彼此不相關的表之間執行左連接?我周圍發現的所有樣本僅顯示這些場景。Left加入NHibernate HQL

我有以下表格,

同步 - > ID(字符串) - > ENTITYID(串) - >活動促銷

客戶 - >標識 - >活動促銷

項目 - > Id - >其他信息

同步是一個通用表存儲關於其餘表格的元數據。 EntityId表示這些表中的字段「Id」(在同步表和其餘表之間沒有創建物理外鍵)。

我基本上要在SQL執行下面的查詢,

選擇s。 ,e。 從同步的左上s.entityid = e.id /加入實體ë

(在SQL上述應該由真正的表,客戶,項目或包含在同步的一些數據的任何其他表來替代實體表)。

任何人都可以給我一些關於如何在HQL中表達該查詢的幫助或指導?

謝謝 Pablo。

回答

3

據我所知,你不能直接這樣做。 HQL是面向對象的,只知道已映射的實體和關係。您可以通過執行session.CreateSQLQuery並使用.AddEntity使NHibernate從SQL查詢的結果構建實體結果來獲得此效果。

+0

其相當愚蠢的,但幾乎所有左連接都更好地完成這種方式。 – DevelopingChris 2010-04-01 20:37:30