Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 验证成功后,什么会导致Grails GORM保存失败?_Validation_Grails_Save_Gorm - Fatal编程技术网

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

Validation 验证成功后,什么会导致Grails GORM保存失败?,validation,grails,save,gorm,Validation,Grails,Save,Gorm,在验证和保存之前,我立即检查我的域对象: class MyDomain ... { static belongsTo = [owner: AnotherClass] ... } “所有者”设置正确。然后我验证;它过去了。然后我保存;它抛出一个关于order_id为null的异常。即使在save中使用failOnError:false,它也会抛出错误 这发生在集成测试中 有什么想法吗 即使您的实例根据约束条件是有效的,保存也可能失败,因为它取决于数据库。想象一下,如果你有: cl

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

class MyDomain ... {
    static belongsTo = [owner: AnotherClass]
    ...
}
“所有者”设置正确。然后我验证;它过去了。然后我保存;它抛出一个关于order_id为null的异常。即使在
save
中使用
failOnError:false
,它也会抛出错误

这发生在集成测试中


有什么想法吗

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

class Person {
  ...  
  Integer age
  ...
  static constraints = {
    age nullable: true
  }
}
还有一个例子:

def person = new Person(age: 9999)
在数据库表中,人的年龄可以有最大值999。您的实例有效,但插入将引发错误


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

请提供一些代码示例和您遇到的错误。我现在面临同样的问题,保存失败,因为与外键(id)对应的atribute被设置为null。尽管我调试时id实际上是一个数字,但还是会发生这种情况。我不确定它是否适用于这里,但我看到过类似的情况。尝试执行domainclass.merge(),解决了我的问题。好链接: