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)でbeensToをネストできるかどうか疑問に思います.
object references an unsaved transient instance - save the transient instance before flushing: TextElement
もちろん、コンテンツを保存する前に、belongsTo をドロップして各 textElement を保存すると、すべてが機能します。
ありがとう!