题
这杯的代码如下抛出以下例外时,试图 .save()
Foo对象:
org.hibernate.TransientObjectException/
org.springframework.dao.InvalidDataAccessApiUsageException:
object references an unsaved transient instance -
save the transient instance before flushing: Bar
我猜我错过了一些格姆语在与自动填充的领域对象从HTTP参数。
我的问题是简单:
- 什么是正确的方式填充和保存Foo目的,没有得到所述的例外?
模型:
class Foo {
Bar bar
}
观点:
<g:form id="${foo.id}">
<g:select name="foo.bar.id" from="${Bar.list()}" />
</g:form>
控制器:
class FooController {
def fooAction = {
Foo foo = new Foo(params)
foo.save()
[ foo: foo ]
}
}
解决方案
如果'Bar'只有上下文中存在的Foo,添加下面的线条。时髦的
class Bar {
static belongsTo = Foo
}
如果'条'是用在其他方面,你可能会用于Foo。时髦的
class Foo {
Bar bar
static mapping = {
bar cascade:'all-delete-orphan'
}
}
不隶属于 StackOverflow