2012-04-30 8 views
2

中2つのcriteriasを使用することができ、私は思っていました等たちは、私が</p> <blockquote> <p>vpisort.sort {it.price}</p> </blockquote> <p>ドメインの結果をソートするために、次のコードを使用しているソート

vpisort.sort {it.price、それ?.discount}

+0

クエリレベル、または現在の結果(既存のリストを意味する)に対して作成する必要はありますか? 2番目の場合は、あなたの例が動作する必要があります –

答えて

5

私はthis記事を見つけました。あなたは、あなたのケースでこれを使用して試すことができます:

vpisort.sort { a, b -> a.price <=> b.price ?: a?.discount <=> b?.discount } 

それはaとbが価格で同等であり、その結果は、それが比較され、によって割引でエルビス演算子を使用して、ゼロである場合にのみ、最初にして価格をcomapres。

+0

ありがとう、その正しく動作します。 – zade

1

hm。これは、グレイルではなく、グルーヴィーな質問です。これを念頭に置き、解決策は単純です:

groovyコンソールを開いて、あなたの行を試してみてください。または、これらの例をチェックアウト:助け

Groovy list.sort by first, second then third elements

希望:

http://groovy.codehaus.org/JN1015-Collections

SO上でこのような別の問題もあります!

更新:あなたのドメインクラスのデフォルトのソート順を持つようにしたい場合は、このGORMの機能を見て取る:http://grails.org/doc/latest/guide/single.html#ormdsl(5.5.3デフォルトのソート順を)

+0

ありがとう、それはうまく動作しています – zade

関連する問題

 関連する問題