【问题标题】:How to use mappedBy correctly in one to many relation如何在一对多关系中正确使用 mappedBy
【发布时间】:2015-03-21 18:15:30
【问题描述】:

我是 grails 的新手。我对我的两个班级的一对多关系有疑问。我有两个类PersonChild 如下

class Child
      {
         String name
         String grade
         Person father
         Person mother
         Person guide

      }

Person 类看起来像

         class Person
            {
              String name
              hasMany[child: Child]
            }

如何在此处正确使用mappedBy 我看过here。该链接中给出的示例显示mappedBy 当多方具有父类的两个属性时。我如何在这里正确使用mappedBy?它在数据库级别有什么不同?请帮忙..

【问题讨论】:

    标签: grails orm grails-orm hibernate-mapping grails-domain-class


    【解决方案1】:

    你可以这样做

    class Person {
       static hasMany = [childs: Child]
       static mappedBy = [childs:'father'] //or whichever parent you want to use 
    }
    

    由于您在 Person 域中只有一个集合,您可以将它映射到只有一个父级。如果要为所有三个父母映射孩子,则需要 Person 中的三个集合

    【讨论】:

    • 谢谢..它可以工作..但你能解释一下它是如何工作的吗?使用这个 mappedBy 时 GORM 做了什么改变?我无法正确理解它的概念..
    • 在您的子类中,您有多个 Person 类型的字段,因此 grails 继续决定子集合应该关联到哪个人员对象,因此您需要指定 mappedBy
    • 如果我使用static mappedBy = [childs : 'mother']static mappedBy = [childs : 'guide'] 会发生什么变化?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2013-12-04
    • 2020-11-12
    • 1970-01-01
    • 2015-02-14
    相关资源
    最近更新 更多