NHibernate 2.1.2.4版中的这个HQL查询有什么问题?

时间:2010-08-04 02:19:27

标签: nhibernate

因此下面的hql查询抛出了Antlr.Runtime.NoViableAltException。我能够确定问题是在order by子句中的member.LastName字段。如果从查询中删除member.LastName将执行。这个HQL在早期版本的NHibernate中运行得很好,但是它升级到了NHibernate 2.1.2.4。如何在不抛出异常的情况下包含member.LastName属性?任何帮助是极大的赞赏。谢谢!

select chartAssignmentLogRecord 
from ChartAssignmentLogRecord chartAssignmentLogRecord 
inner join chartAssignmentLogRecord.Measure as measure 
inner join measure.ProviderLocation as providerLocation
inner join providerLocation.Provider as provider 
inner join providerLocation.Address as address 
inner join measure.Member as member
where chartAssignmentLogRecord.AssignedDate >= :startDate  and chartAssignmentLogRecord.ChartModifiedStatus =  :modifiedStatus  and chartAssignmentLogRecord.AssignedDate =(select max(subChartAssignmentLogRecord.AssignedDate) from ChartAssignmentLogRecord subChartAssignmentLogRecord where subChartAssignmentLogRecord.Measure=chartAssignmentLogRecord.Measure) 
order by chartAssignmentLogRecord.AssignedDate desc, provider.LastName, address.AddressLine1, member.LastName

1 个答案:

答案 0 :(得分:1)

感谢DanP,我在order by子句中使用了measure.Member.LastName而不是member.LastName。不知道为什么要修复它,因为据我所知,我的HQL应该是有效的,并且在早期版本的NHibernate中肯定是有效的。