我目前正在尝试提高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文件中,并且主键列具有两个表的名称,这是我的问题的一部分。
我想实现的目标是否可能?如果可以,怎么办?