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)中是否可以嵌套 belongsTo

object references an unsaved transient instance - save the transient instance before flushing: TextElement

当然,如果我在保存内容之前删除一个 belongsTo 并保存每个 textElement,一切都会正常工作。

谢谢!

4

0 回答 0