验证成功后,什么可能导致Grails GORM保存失败?

时间:2013-03-27 20:26:36

标签: validation grails save gorm

在验证并保存之前,我立即检查我的域对象:

class MyDomain ... {
    static belongsTo = [owner: AnotherClass]
    ...
}

“所有者”设置正确。然后我验证;它过去了。然后我救了;它会抛出一个关于order_id为null的异常。即使在failOnError:false中使用save,它也会抛出。

在集成测试中会发生这种情况。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

即使您的实例根据约束有效,保存也会失败,因为它取决于数据库。想象一下,如果你有:

class Person {
  ...  
  Integer age
  ...
  static constraints = {
    age nullable: true
  }
}

一个例子:

def person = new Person(age: 9999)

在您的数据库表格中,人的年龄可以为最大值 999 。您的实例有效,但插入将引发错误。

依赖于触发器的外键和操作也会发生同样的情况。