2012-12-09 102 views
1

我有一个域类:Grails瞬态属性不验证错误?

class Book { 

    String id 
    Date dateCreated 
    Date lastUpdated 
    String title 
    boolean acceptPolicy // defines if the user accepts the terms and privacy poicy 
    String uploadImageId 

    static transients = [ "acceptPolicy" ] 

    static constraints = { 
      acceptPolicy(validator: { val, obj -> val == true}) 
    } 

} 

我选择“acceptPolicy”作为不应该存储在数据库中的字段。当我创建一个书籍对象时,一切都可以找到。当我更新书籍实例时发生问题。每次尝试保存时,我都会收到“acceptPolicy”的验证错误。这不应该是这种情况,因为“acceptPolicy”没有存储在数据库中。我也尝试在隐藏的输入字段中设置

acceptPolicy = true 

但仍会出现此问题。我该如何解决它?

回答

3

更改验证,并使其行为,使其仅验证acceptPolicy场当实体尚未持久:

acceptPolicy(validator: { val, obj -> obj.id || val })