Grails理解属于协会

时间:2012-06-21 05:57:57

标签: grails associations grails-2.0

  

可能重复:
  Grails/GORM: The meaning of belongsTo in 1:N relationships

我有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. 当我创建地址 belongsTo 教师
  2. 时,我获得的优势是什么?
  3. 我是否需要在Address类中声明教师对象引用(请参阅Teacher类中的注释行)

2 个答案:

答案 0 :(得分:1)

拥有belongsTo子句的目标是从一个类到另一个类的双向访问。请参阅Documentation of 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子句,则无法从地址对象访问教师对象。这也反映在数据库中。

答案 1 :(得分:1)

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

阅读本文documentation,它解释了您需要了解的关于belongsTo的所有内容。