私の Grails アプリには、1 対多の関係を持つ 2 つのドメイン クラスがあります。
class Parent
static hasMany = [children: Child]
}
class Child {
Integer index
static belongsTo = [parent: Parent]
}
index
親の最初の子がインデックス 1、次の子が 2 などになるように、子が作成された相対的な順序を記録したいと思います。インデックスは連続している必要はありません。削除されますが、作成の相対的な順序を常に反映する必要があります。
index
プロパティを設定するには、次のようなことを検討しました
class Child {
Integer index
static belongsTo = [parent: Parent]
def beforeValidate() {
def maxIndex = Child.createCriteria().get {
projections {
max('index')
}
eq('parent', parent)
}
this.index = maxIndex + 1 ?: 1
}
}
Child
しかしもちろん、これは 2 つの一時的なインスタンスに同じインデックスを割り当てるため、うまくいきません。index
このプロパティを維持する最も簡単な方法は何ですか?
FWIW、他のコードが設定されないようにすることについてあまり心配していindex
ませんが、それを行う方法があれば、それはおまけになります。