在grails域中具有泛型belongsTo

时间:2013-03-05 14:52:39

标签: grails gorm relationship grails-domain-class

我的grails项目中有三个课程。什么是适当的grails域定义

Class A {

 List<Resource> xResources
 List<Resource> yResources

 hasMany = [ xResources: Resource, yResources: Resource]
}

Class B {
  List<Resource> zResources
  hasMany = [ zResources: Resource]
}


Class Resource {

  String title
   .....
     ..

 belongsTo = [A, B]

}

上面的定义失败了,因为我没有在A类中提到过mappedBy。如何避免这种情况。我希望Resource类是通用的。 我不想仅将Resource类限制为两个类,但我应该允许它将它扩展到其他类。我还需要从Resource对象获取源引用。对于这种情况,GORM定义应该是什么。?

2 个答案:

答案 0 :(得分:0)

我在您的代码中看到了3个主要问题:

  1. 属性xResources, yResources, zResources是双重定义的。只需删除重复的List<Resource> ...定义即可。

  2. hasManybelongsTo之前应该有一个static关键字。

  3. 我不确定belongsTo是否可以指向多个班级。如果没有,请将其删除。

答案 1 :(得分:0)

请按照以下代码

Class A {
static hasMany = [ xResources: Resource, yResources: Resource]
}

Class B {

static hasMany = [ zResources: Resource]
}


Class Resource {

  String title
   .....
     ..

 static belongsTo = [a:A, b:B]

}