我是grails的新手。
我有85個字段的用戶域類,我正在做一個操作,例如只更新地址字段。
現在,對於用戶域的任何保存操作,我必須指定所有屬性值,如果我錯過任何保存失敗。
如何設置域以便我只能指定要更新的屬性,而不是整個屬性列表?
如何在保存域實例時不指定所有域屬性值
感謝
我是grails的新手。
我有85個字段的用戶域類,我正在做一個操作,例如只更新地址字段。
現在,對於用戶域的任何保存操作,我必須指定所有屬性值,如果我錯過任何保存失敗。
如何設置域以便我只能指定要更新的屬性,而不是整個屬性列表?
如何在保存域實例時不指定所有域屬性值
感謝
我想你可以嘗試
def userInstance=User.get(params.id)
userInstance.address=params.newAddress
userInstance.save(flush:true)
我沒有做得到總是...如果它的一個新的插入然後... – 2012-03-17 17:35:39
是否有一種方法仇敵新實例我可以有一個構造函數將填充一些默認值的字段 – 2012-03-17 17:53:52
如果它的新實例,那麼你可以嘗試'def userInstance.properties = params'然後保存userInstance。 – 2012-03-17 18:58:41
你可以考慮使用Command Objects爲您的地址頁面。創建一個命令對象並使用它來驗證來自該頁面的輸入。如果它通過該檢查,則更新用戶實例並繼續。
如果要創建一個新用戶,然後創建它只有當你收集了所有必需的信息
這並不是真正意義。當您在此對象上調用get()時,所有其他字段都應正確填充。你能發表一些你如何更新你的領域的代碼嗎? – 2012-03-17 11:58:30
請注意,您可以指定全局的gorm約束。 http://grails.org/doc/latest/ref/Constraints/Usage.html - 是否在其他84個屬性上驗證失敗? – 2012-03-17 12:00:21