문제

객체 그래프가 아닌 개별 열을 반환하는 기존 HQL 쿼리를 수정하고 있지만 이제 필요한 모든 행을 얻지는 못합니다.

여기 현재 스키마에 대한 몇 가지 사실이 있습니다.

  • 견적은 계약에 속합니다.
  • 계약의 소유권 부동산은 NULL 일 수 있습니다.
  • 부서의 ParentbusinessStream 속성은 무효 일 수 없습니다

이것은 쿼리입니다.

select e.ID, e.StatusCode.ID, e.InputDate, e.ParentClient.Name, e.ParentContractLocation.ParentLocation.Description, e.Description, e.InternalRef, e.ExternalRef, e.TotalIncTax, e.TaxTotal, e.Closed, e.ViewedByClient, e.HelpdeskRef, e.ParentContract.Reference, d.ParentBusinessStream.Title, d.Name
from Estimate e, Department d where (e.ParentContract.ID in (select cs.ParentContract.ID from ContractStaff cs
where cs.ParentStaff.ID=:staffID)) and ((d.ID = e.ParentContract.OwningDepartment.ID) OR (d.ID is null)) order by e.ID

불행히도 내 쿼리는 부모 계약에 소유 부서가없는 경우 추정치를 반환하지 않습니다. 대신에 나는 관련 필드가 단지 무효가되기를 원합니다. 왼쪽 외부 조인을 시도했지만 동일한 결과를 얻었습니다.

모든 도움은 대단히 감사하겠습니다. 내가 바보 같은 일을했다면 사과드립니다.

건배,

제임스

도움이 되었습니까?

해결책 2

나는 그것을 해결했다고 생각합니다 : d.parentbusinessstream.title은 암시 적 내부 결합이지만 d는 null이기 때문에 올바르게 작동하지 않습니다. 이것을 고려하기 위해 쿼리를 변경했습니다.

다른 팁

왼쪽 외부 결합이 포함 된 비정상적인 쿼리는 ISQLQuery를 사용하여 적절한 SQL 구문 및 일부 HQL 전력에 액세스 할 수있는 것이 좋습니다.

그 외에도 일반적으로 도움이되는 매핑 파일을 제공하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top