私のアプリでは、Patient エンティティに 1:1 で関連付けられているオブジェクト Voucher を更新しています。私のコントローラーでは、「voucherInstance.properties = params」を呼び出して新しい値をバインドします。しかし、バウチャーの患者を変更して (まだ保存していない)、IMO が true を返すはずの isDirty('patient') を呼び出すと、実際には false が返されます。
また、getPersistentValue('patient') は、元の値ではなく、変更された値を返します。これらの方法を正しく理解していますか?
ありがとう、ロイザ
私のコントローラークラスでは:
def update() {
Voucher voucherInstance = voucherService.get(id)
voucherInstance.properties = params // patient is being sent from view by params.patient.id
voucherService.update(voucherInstance)
}
私の VoucherService クラスでは:
public Voucher update(Voucher voucher) {
if (voucher.isDirty('patient')) { // returns false
// do something
Patient oldPatient = voucher.getPersistentValue('patient') // returns the updated patient
}
voucher.save(flush: true)
}