이처럼 오늘날 무엇인가가 왔으며, criteria 쿼리에서 그것을 해결하는 동등한 방법이 있는지 궁금해하고있었습니다.NHibernate Criteria Queries를 이용한 복잡한 Ordering
기본적으로 테이블이 있으며이 테이블에는 두 개의 null 입력 가능 문자열 필드 (foo 및 bar)가 있습니다. 우리는 이들을 종합하여 소망하고 싶습니다.
문자열 연결 (order by foo + bar desc
)은 값 중 하나가 null이면 null을 반환하고, order by foo, bar
은 필요에 따라 null을 고려하지 않습니다. 내가 NHibernate에의 토크 나이 내에서 세부 사항을 모르겠어요
SELECT foo, bar, (ISNULL(foo,'') + ISNULL(bar,'')) as f
FROM foobar
ORDER BY f DESC
, 그러나 당신이 인 경우에 같은 쿼리를 사용
SELECT foo, bar
FROM foobar
ORDER BY (ISNULL(foo,'') + ISNULL(bar,'')) DESC
로 작성 : 같은
SQL의 솔루션을 볼 수 있었다 그것은 foo와 bar를 각각의 정렬 표현식으로 파싱하기 때문에 그것은 질식합니다.
그럼 ... 기준 쿼리에서 어떻게 작성 하시겠습니까? 그러한 메소드가 있을지, 아니면 새로운 ResultTransformer 또는 이후의 정렬 만이 유일한 옵션일까요?
매우 흥미 롭습니다. 슬픈, 솔루션은 기준 레벨보다는 바인딩 레벨에있는 것처럼 보입니다. =/ – ddango
사실, 저는 이것이 Projections, SQLFunctions 및 그런 종류의 것들을 사용하여 수행 될 수 있다고 생각합니다. 그러나 나는 그것이 훨씬 더 복잡하다고 생각합니다. 반면에 HQL을 사용하면 SQL과 크게 다르지 않습니다. 너 그거 해봤 니? –