在 Grails 中是否有可能有 2 层深的 belongsTo?我似乎无法让它在 Grails 2.2.2 中工作。
这是我的模型
class Content {
static constraints = {
key(unique: true, blank: false)
title(blank: true)
}
static mapping = {
}
static hasMany = [elements: Element]
String title
String key
}
class Element {
static belongsTo = [content: Content]
static constraints = {
textElement(nullable: true)
}
TextElement textElement
}
class TextElement {
static constraints = {
title(nullable: true)
subTitle(nullable: true)
text(blank: false, markdown: true, widget: 'textarea')
}
static belongsTo = [element: Element]
String title
String subTitle
String text
}
在控制器中,我使用以下示例代码绑定并保存
def par = [key: 'akey', title: 'atitle', 'elements[0].textElement.text': 'atext']
def content = new Content(par)
content.save(flush: true)
我得到一个 org.hibernate.TransientObjectException 这让我想知道在 Grails(或 Hibernate)中是否可以嵌套 belongsTo
object references an unsaved transient instance - save the transient instance before flushing: TextElement
当然,如果我在保存内容之前删除一个 belongsTo 并保存每个 textElement,一切都会正常工作。
谢谢!