2

在验证和保存之前,我检查了我的域对象:

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

“所有者”设置正确。然后我验证;它通过了。然后我保存;它抛出一个关于 order_id 为空的异常。即使failOnError:falsesave.

这发生在集成测试中。

有任何想法吗?

4

1 回答 1

2

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

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

还有一个例子:

def person = new Person(age: 9999)

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

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

于 2013-03-28T15:00:46.040 回答