用一个NHibernate SQL查询映射两个实体?

时间:2019-04-10 14:24:36

标签: c# nhibernate

我目前正在尝试提高NHibernate请求的性能。

我有一个像这样的HQL查询:

select obj1 from MyObject obj1
join fetch obj1.MySubObject subObject
where obj1.StartDate = (
    select max(obj2.StartDate) 
    from MyObject obj2 
    where obj1.SubObject.Cle = obj2.SubObject.Cle
) 

我已经基于关联的SQL查询创建了一个materlize视图,并且我正在尝试对其执行SQL查询,以获取带有关联子对象的Object列表:

 IQuery request = this.CreateSQLQuery(query).AddEntity(typeof(MyObject));

但是我只有一个NHibernate代理作为我的子对象。

我也尝试过:

 IQuery request = this.CreateSQLQuery(query).AddEntity(typeof(MyObject)).AddEntity(typeof(MySubObject));

但是在那种情况下,我有一个GenericADOException,说在ResultSet中找不到指定的列。

这两个实体映射到hbm文件中,并且主键列具有两个表的名称,这是我的问题的一部分。

我想实现的目标是否可能?如果可以,怎么办?

0 个答案:

没有答案