【问题标题】:Grails 2.4.3, isDirty flag not set on new domain objectGrails 2.4.3,未在新域对象上设置 isDirty 标志
【发布时间】:2014-09-04 16:58:20
【问题描述】:

我没有看到 isdirty 标志返回为 true。
要进行此设置,请使用 grails 2.4.3 创建一个空项目 在控制器保存函数中,通过以下代码:

def data = [firstName:'X', lastName:'Y']
Person p = new Person()
bindData(p, data)
println p.toString()
println p.dirtyPropertyNames
println p.isDirty()

领域类:

class Person {
    String firstName
    String lastName
    static constraints = {
    }

    String toString(){
        return lastName + ': ' + firstName
    }
}

我的结果

p.toString() == Y: X 
p.dirtyPropertyNames == []
p.isDirty() == false

还有其他人遇到同样的问题吗?从 dataBind 创建新的域对象时,这似乎是一个问题。因此,当我尝试保存域对象时,它不会保存,因为记录不脏。在 2.2.2 版本中,这会被认为是脏的,文档说它是脏的。

【问题讨论】:

  • 您是说bindData(p, data) 吗?

标签: grails


【解决方案1】:

如果属性的值在从数据库加载后已更改(但尚未持久化),则该属性被视为“脏”。在您的示例中,Person 实例从未被持久化,因此所有属性都不会是脏的

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 2015-04-01
    • 2020-09-24
    相关资源
    最近更新 更多