2010-08-04 3 views
1

그래서 아래의 hql 쿼리는 Antlr.Runtime.NoViableAltException을 던지고 있습니다. 그 문제는 order by 절에있는 member.LastName 필드와 관련이 있는지 확인할 수있었습니다. 질의에 의한 order에서 member.LastName을 제거하면 실행됩니다. 이 HQL은 이전 버전의 NHibernate에서 잘 작동했지만, NHibernate 2.1.2.4 로의 업그레이드가 중단되었습니다. 예외를 throw하지 않고 member.LastName 속성을 어떻게 포함시킬 수 있습니까? 어떤 도움이라도 대단히 감사합니다. 감사!NHibernate의 버전 2.1.2.4에서이 HQL 쿼리가 잘못된 점은 무엇입니까?

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

독립 실행 형 테스트 케이스를 만들 수 있습니까? –

+0

@Mauricio -이 쿼리에 대한 단위/통합 테스트가 있는지 묻는다면 대답은 yes입니다. – Darren

+0

여기 어둠 속에서 쐈어.하지만 측정에 대한 어떤 사랑. 멤버. 대신에 순서에 따른 이름? – DanP

답변

1

DanP 덕분에 order by 절에서 member.LastName 대신 measure.Member.LastName을 사용했습니다. 왜 내가 고칠 때까지, 내 ​​HQL이 유효하고 NHibernate의 초기 버전에서 확실히 유효 했어야했는지 모르겠다.

관련 문제