我在 grails 1.1.2 中的 Web 流中收到“org.springframework.dao.DataIntegrityViolationException:非空属性引用空值或瞬态值:Ab”异常。有
class B {
...
static belongsTo = [a:A]
...
}
和
class A {
...
static hasMany = [b:B]
...
}
有谁知道出了什么问题?谢谢汤姆
我在 grails 1.1.2 中的 Web 流中收到“org.springframework.dao.DataIntegrityViolationException:非空属性引用空值或瞬态值:Ab”异常。有
class B {
...
static belongsTo = [a:A]
...
}
和
class A {
...
static hasMany = [b:B]
...
}
有谁知道出了什么问题?谢谢汤姆
解决了。
有一个不同的问题。我没有坚持任何事情。流中的序列化数据和数据库中的持久化数据之间出现了一些不一致。所以一个选择查询导致了这个异常。
这实际上主要取决于您的参数是什么以及您如何处理 GORM 对象的创建或维护,而不是您的实际对象图。
同意@John。一种常见的解决方案是,您应该将对象另存为
a.addToB(b)
a.save()
希望能帮助到你。
这个问题与ORM有关(我猜你在下面使用hibernate)。如果您配置映射属性的级联属性,问题将得到解决。
我不知道如何在 grails 中配置它,但是这个休眠文档应该可以帮助您了解问题出在哪里:http ://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/objectstate .html#objectstate-transitive