3

'Status'というプロパティを含むドメインがあります。このプロパティには、「A」、「I」、「P」、「Pv」、「R」を含めることができます。

私は次のクエリを持っています:

def list = Deal.findAll('from Deal as d')

ステータスが「P」の行が常に結果セットの先頭に返されるように結果を並べ替えるにはどうすればよいですか?(その後、どのような順序で来るかは気にしません)。

4

2 に答える 2

3

これはあなたが望むことをしますか?通常、私は答える前にそれをテストしますが、私はそのatmを行う簡単な方法がありません。

def list = Deal.findAll('''from Deal as d order by case d.property when 'P' then 0 else 1 end''')
于 2012-11-09T17:45:14.293 に答える
1

コンパレータでソート方法を使用できます。

def list = Deal.findAll('from Deal as d').sort({a,b-> (a.status== 'P' && b.status != 'P') ? 0 : 1 })
于 2012-11-09T17:49:58.867 に答える