2012-02-13 9 views
0

안녕하세요 최대 절전 모드 동적 주문

ORDER BY IF g.groupAdminId=:adminid THEN 1 ELSE 0 END ASC 

HQL

에 정렬 할 그러나, 나는이 archieve 수있는 방법, 사용자가 관리자가 처음으로 모든 엔티티를 갖고 싶어 작동하지 않는 이유는 무엇입니까?

답변

7

where 절 외부에 명명 된 매개 변수를 넣는 것이 가능하지 않다고 생각합니다.

는 표현에 따라 주문할 수있다 :

from User U 
order by case 
    when U.group.name = 'Admin' then 0 
    when U.group.name = 'Superuser' then 1 
    else 2 
end asc 

HQL docs에서 case에 대한 자세한 :

특정 문제에 대한

(다른 사용자 전에 가진 관리자) 나는 두 개의 쿼리를 만들고 결합 제안을 Java에서 두 개의 목록.

가이 주변의 다른 방법이있다 그러나 나는 그들 중 하나를 좋아하지 않는다 :