【问题标题】:Grails GORM field initialization issueGrails GORM 字段初始化问题
【发布时间】:2011-03-30 18:58:30
【问题描述】:

所以我是一对一的关系:

class Number1 {
    Number2 n2
}

class Number2 {
    belongsTo = [n2: Number2]
}

现在,我想在 Number1 类中初始化 n2,例如:

class Number1 {
    Number2 n2 = New Number2(...).save()
}

但是 Grails 因休眠异常而失败。用这种关系初始化字段的最佳做法是什么?

【问题讨论】:

    标签: grails grails-orm relationship


    【解决方案1】:

    我想这里有一个错误。正如您的问题所述,Number2 应该属于 Number1,而不是其本身:

    belongsTo = [n1: Number1]
    

    如果定义 Number2 belongsTo Number1,如果 Number2 的对象没有关联的 Number1 对象,它将无法持久化。您必须先将 Number2 对象添加到某个 Number1 对象。

    在控制器中做这样的事情:

    def a = new Number1();
    def b = new Number2();
    
    b.addToN1(a)
    ...
    

    您应该查看GORM Gotchas series 了解更多详情。它将展示在使用 Grails 持久性时如何避免非常常见的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 2023-02-15
      • 1970-01-01
      • 2011-06-18
      • 2017-07-01
      • 1970-01-01
      相关资源
      最近更新 更多