0

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 を保存すると、すべてが機能します。

ありがとう!

4

0 に答える 0