2012-02-13 2 views
0

こんにちは私はHQL休止ダイナミック注文

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

をソートしたい。しかし、それは動作しませんが、私はこれをarchieveできるか、ユーザーが最初の管理者であるすべてのエンティティを持っていたいですか?

答えて

7

名前付きパラメータをwhere句の外に置くことは可能ではないと思います。

表現に応じて注文することが可能である:HQL docscase

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

もっと:

あなたの特定の問題のために(他のユーザーの前に管理者を持つ)私は2つのクエリを作ると組み合わせることをお勧めJavaの2つのリスト

あり、この周りに他の方法があるが、私はそれらのいずれかを好きではない: