0

可能重复:
Grails/GORM:belongsTo 在 1:N 关系中的含义

我有 2 个具有 belongsTo 关联的域类

      class Teacher {
         String name
         String department
      }

      class Address {
        String line1
        String line2

       // Teacher teacher  //this line is commented.
       static belongsTo = [teacher: Teacher]

        static constraints = {
        }
     }
  1. 当我让地址属于老师时,我得到了什么好处
  2. 我需要在地址类中声明教师对象引用吗(参见教师类中的注释行)
4

2 回答 2

1

拥有该belongsTo子句的目标是实现从一个类到另一个类的双向访问。请参阅belongsTo 的文档

您可以省略第二个教师声明(您已注释掉)。

所以它应该是这样的:

  class Teacher {
     String name
     String department

     Set<Address> adresses = new HashSet<Address>() // here you could set a specific list/set data holder
     static hasMany = [adresses:Address]
  }

  class Address {
    String line1
    String line2

   static belongsTo = [teacher: Teacher]

    static constraints = {
    }
 }

在这里,您有一个一对多的关联,两个类都可以相互访问。如果删除该belongsTo子句,您将无法从地址对象访问教师对象。这也反映在数据库中。

于 2012-06-21T06:22:08.007 回答
1

belongsTo 的目标不是使关系成为双向的 - 目标是指定关联的哪一方获得所有权并定义级联保存和删除操作的行为

阅读这个文档,它解释了你需要知道的关于 belongsTo 的所有事情。

于 2012-06-21T09:01:03.270 回答