2012-12-09 150 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 })