gpt4 book ai didi

Grails 域类属性更改未标记为 Dirty

转载 作者:行者123 更新时间:2023-12-02 00:12:39 26 4
gpt4 key购买 nike

我的域类中有一个 transient 方法,它将更新该类的属性。当我使用此方法时,类不会被标记为脏并且不会保存。

class Major {
String code
String major

static transients = ['update']

def update(String newVal) {
major = newVal
}
}

Major major = Major.findByCode("ACAA");
major.update("NEW VALUE");
println("Is dirty? "+ major.dirty); //Is dirty? false

当我在方法之外更新属性时,它会按预期工作并且我可以保存

Major major = Major.findByCode("ACAA");
major.major = "NEW VALUE";
println("Is dirty? "+ major.dirty); //Is dirty? true

这不起作用有什么原因吗?

Grails 3.3.1

GORM 6.1.6

最佳答案

错误出在更新函数上。它需要像这样显式调用 setter:

def update(String newVal) {
setMajor(newVal)
}

有关引用,请参阅 the new dirty checking implementation 的 GORM 升级说明.

关于Grails 域类属性更改未标记为 Dirty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49617884/

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