我刚开始使用Grails,这是第一个问题.
我花了几个小时才发现域对象无法插入到DB中,直到填充了所有属性.
class Item {
  String title
  String link
}
class ItemController {
  def fetch = {
    def item = new Item()
    item.title = "blabla"
    // no value for "link"
    item.save()
  }
}
看起来合乎逻辑,但为什么它会如此默默地跳过?在这种情况下,我可以配置一些东西以获得异常吗
谢谢
fab*_*474 31
默认情况下不会抛出异常.
如果在验证阶段发生错误,则save()注入到Domain类的方法将返回false.用于检查域类的保存/更新的经典代码示例是:
if (!myDomainObj.save()) {
   log.warn myDomainObj.errors.allErrors.join(' \n') //each error is an instance of  org.springframework.validation.FieldError    
}
如果您需要为特定域类设置例外,请使用:
myDomainObj.save(failOnError: true)
并且将抛出验证失败的异常.
如果要为每个域类抛出异常,则只需在grails-app/conf/Config.groovy中设置grails.gorm.failOnError为true
注意:所有域属性都有一个隐式nullable: false约束.
我建议你阅读这篇文章.
| 归档时间: | 
 | 
| 查看次数: | 11171 次 | 
| 最近记录: |