他這是仍然允許grails 2.1.0,因爲它似乎並沒有保存到數據庫。這仍然允許在grails 2.1.0?
def post = new Post()
post.message = params.message
post.author = User.get(springSecurityService.principal.id)
post.save()
也有一種方法,我可以檢查看到它的保存?
謝謝
他這是仍然允許grails 2.1.0,因爲它似乎並沒有保存到數據庫。這仍然允許在grails 2.1.0?
def post = new Post()
post.message = params.message
post.author = User.get(springSecurityService.principal.id)
post.save()
也有一種方法,我可以檢查看到它的保存?
謝謝
看起來有效。不知道你的限制和領域,很難多說。
可以確認save()
調用工作與failOnError: true
,如post.save(failOnError: true)
經常檢查保存的結果:
if (!post.save(flush: true)) {
log.error(post.errors)
}
使用springSecurityService.currentUser
。
spring-security-core插件爲您的控制器注入了一些方便的屬性。因此,您可以使用「principal」屬性來代替springSecurityService.currentUser。即:post.author =主要 –
偉大的信息,謝謝! – Chris
不可以,主體是'GrailsUser',只是一個POGO,而不是GORM要求的用戶/人域類 –
你有錯誤後對象 - 將它們打印出來有:post.errors .allErrors.each {log.error它} – chrislovecnm
Sargamichel,所有域類屬性是可空:默認爲false?你在單元測試中測試你的域類限制嗎?在單元測試中檢查你的約束和域行爲 –
你應該閱讀由彼得Ledbrook寫的優秀系列的GORM Gotchas:1. http://blog.springsource.org/2010/06/23/gorm-gotchas-part-1/ 2. http://blog.springsource.org/2010/07/02/gorm-gotchas-part-2/ 3. http://blog.springsource.org/2010/07/28/gorm-gotchas-part- 3/ –