gpt4 book ai didi

Grails isDirty() 不适用于关联

转载 作者:行者123 更新时间:2023-12-02 15:13:24 24 4
gpt4 key购买 nike

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

此外,getPersistentValue('patient') 返回更改后的值,而不是原始值。我是否正确理解了这些方法?

谢谢,
洛伊扎

在我的 Controller 类中:

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)
}

最佳答案

这里正确使用应该是voucherInstance.patient.isDirty . isDirty 的参数化版本用于 bean 字段 iirc。

关于Grails isDirty() 不适用于关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10315345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com