Grails 2.4.3,未在新域对象上设置isDirty标志

时间:2014-09-03 18:00:47

标签: grails

我没有看到肮脏的旗帜回归真实 要设置它,请使用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中,这将被视为脏,文档说它很脏。

1 个答案:

答案 0 :(得分:1)

财产被视为"脏"如果属性的值已经更改(但尚未保留),因为它是从数据库加载的。在您的示例中,Person实例从未被持久化,因此没有任何属性可以是脏的