在我的应用程序中,我正在更新与患者实体 1:1 关联的对象凭证。在我的控制器中,我调用“voucherInstance.properties = params”来绑定新值。但是当我在凭证中更改患者(尚未保存),然后我调用 isDirty('patient'),在这种情况下 IMO 应该返回 true,它实际上返回 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)
}