因此下面的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
答案 0 :(得分:1)
感谢DanP,我在order by子句中使用了measure.Member.LastName而不是member.LastName。不知道为什么要修复它,因为据我所知,我的HQL应该是有效的,并且在早期版本的NHibernate中肯定是有效的。