我的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定义应该是什么。?
答案 0 :(得分:0)
我在您的代码中看到了3个主要问题:
属性xResources, yResources, zResources
是双重定义的。只需删除重复的List<Resource> ...
定义即可。
hasMany
和belongsTo
之前应该有一个static
关键字。
我不确定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]
}