また、Pixes
の最後の最大値を取得するために名前付きクエリを実行することもできます。これは、表示オーダーがスキップおよびジャンプするシナリオで機能します。その後
class Widget {
static hasMany = [pixes: Pix]
...
}
class Pix {
static belongsTo = [widget: Widget]
static namedQueries = {
selectMaxDisplayOrderForWidget { widgetInstance ->
eq('widget', widgetInstance)
projections {
max('displayOrder')
}
uniqueResult = true
}
}
...
}
:
def widget = retrieveOrCreateWidget()
def pix = new Pix(propertyA: "A", ..., displayOrder: Pix.selectMaxDisplayOrderForWidget(widget).list(), widget: widget)
あなたがそう、彼らは@Jarred Olsonへのあなたのコメントにつき、Widget
用シーケンシャルで削除Pix
後の表示順序番号を再初期化したい場合は、行うことができます:
Pix.findAllByWidgetAndDisplayOrderGreaterThan(widget, deletedPixDisplayOrder, [sort:'displayOrder',order:'asc']).eachWithIndex { pixInstance, idx ->
pixInstance.displayOrder = deletedPixDisplayOrder + idx
pixInstance.save()
}
Pixの作成方法のコードを共有して、それらをウィジェットに割り当てることはできますか?ウィジェットを作成しようとしているように聞こえるように聞こえますが、最初に関連付けるPixはdisplayOrder = 1です。それに関連付ける次のpixはdisplayOrder = 2です。正しいですか? –
...はい、そうです。 – vector