私のドメイン間の関係:
class Cartridge
{ ...
static hasMany = [cartridgeLanes: CartridgeLane]
static belongsTo = [request:Request]
}
class CartridgeLane
{...
CartridgeLaneSampleAttributes cartridgeLaneSampleAttributes
static belongsTo = [cartridge:Cartridge]
}
class CartridgeLaneSampleAttributes
{...
static belongsTo = CartridgeLane
}
カスケード更新のコード:
def sampleAttributes = new CartridgeLaneSampleAttributes()
sampleAttributes.sampleId = sample.get("ID")
...
def cartridgeLane = new CartridgeLane()
cartridgeLane.laneId = lane.get("ID") as Integer
...
cartridgeLane.cartridgeLaneSampleAttributes = sampleAttributes
def cartridge = Cartridge.findByCartridgeID(cartridgeId)
cartridge.addToCartridgeLanes(cartridgeLane)
cartridge.save()
まず、 sampleAttributesをcardcatLaneにリンクし、次に更新するカートリッジを見つけて(cardcatLaneにリンクします)、最後に保存します。
このコードはデータを挿入するだけです(例:sampleAttributesとcarditchLaneデータをカートリッジに追加します)。
私の問題は、(INSERTではなく)UPDATEを探していることです。
カスケード更新を管理するにはどうすればよいですか?
gormは更新と挿入をどのように区別しますか?
更新をカスケードするためのより効率的な方法はありますか?