ドメインの結果を並べ替えるために次のコードを使用しています
vpisort.sort {it.price}
私は私が次のようなものを使うことができるかどうか疑問に思いました
vpisort.sort {it.price-it?.discount}
ドメインの結果を並べ替えるために次のコードを使用しています
vpisort.sort {it.price}
私は私が次のようなものを使うことができるかどうか疑問に思いました
vpisort.sort {it.price-it?.discount}
この投稿を見つけました。あなたのケースでこれを使ってみることができます:
vpisort.sort { a, b -> a.price <=> b.price ?: a?.discount <=> b?.discount }
最初に価格を比較し、次に a と b が価格で等しく、結果がゼロの場合にのみ、Elvis 演算子を使用して a と割引で比較します。
うーん。これはグレイルではなく、グルーヴィーな質問です。これを念頭に置いて、解決策は簡単です:
Groovy コンソールを開いて、回線を試してみてください。または、次の例を確認してください。
http://groovy.codehaus.org/JN1015-コレクション
SOに関するこのような別の質問もあります:
最初、2番目、3番目の要素によるGroovy list.sort
それが役立つことを願っています!
更新:ドメイン クラスのデフォルトの並べ替え順序が必要な場合は、次の GORM 機能を参照してください: http://grails.org/doc/latest/guide/single.html#ormdsl (5.5.3 デフォルトの並べ替え順序)