2012-04-21 10 views
0

私はGORM criteriasをしばらく使っています。私はそれらを本当に愛しています(複雑さを抑え、コードを分かりやすくするために多くを助けます)。作業これではないように、もちろんですGORM Criteria並び順:絶対値

Person.createCriteria(){ 
    order("abs(rating)", "desc") 
} 

:プロパティの絶対値でソートした結果を取得しようとしたとき

私は現時点ではいくつかの問題を抱えています。

誰かがそれを行う正しい方法は何でしょうか?私は直接の基準で腹筋でソートする何かを見つけ出すことができませんでした

答えて

2

(GORMにおける絶対値で並べ替え)

おかげで、 ニコラスが、基準の後にソートが動作します:

def personInstanceList = Person.withCriteria { 
     //whatever is necessary for your query 
    } 
    personInstanceList.sort {a, b-> java.lang.Math.abs(b.rating) <=> java.lang.Math.abs(a.rating)} //b.rating <=> a.rating sorts desc 
+0

こんにちはケリー、あなたの答えをありがとうが、このソリューションは私のケースでは動作しません。それを照会した後にリストをソートすると、DBからデータセット全体を照会する必要があります。これは、大きなセット(> 10'000)に対して極端に不安定です。なぜ私はSQLレベルでこれをしなければならないのですか? – Nicolas

+0

それは私が探していたものではありませんが、私の問題を解決する方法を見つけようと多くの時間を取った後、私はあなたのソリューションを使用することに決めました。ありがとう:)! – IgniteCoders