2009-05-04 87 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