Grails 域类之间未定义所有者
目前,我遇到以下错误:Grails 域类之间未定义所有者,grails,many-to-many,grails-domain-class,Grails,Many To Many,Grails Domain Class,目前,我遇到以下错误: No owner defined between domain classes [class mp.ra.Classgroup] and [class mp.ra.Event] in a many-to-many relationship. 域类的设置如下:, 事件类: class Event { static hasMany = [classgroups:Classgroup] static belongsTo = [eventgroup:Eventgroup,cla
No owner defined between domain classes [class mp.ra.Classgroup] and [class mp.ra.Event] in a many-to-many relationship.
域类的设置如下:,
事件类:
class Event {
static hasMany = [classgroups:Classgroup]
static belongsTo = [eventgroup:Eventgroup,classgroup:Classgroup]
static constraints = {
eventgroup nullable:true
}
还有班级
class Classgroup {
static hasMany = [courses:Course,events:Event]
static constraints = {
courses nullable:true
}
一个事件可以有多个类组,一个类组可以有多个事件。
我使用了“属于”属性,因此我不明白为什么会出现此错误
编辑:我更改了事件类,错误消失了,我不知道这是否是一个好的解决方案
class Event {
Eventgroup eventgroup
static hasMany = [classgroups:Classgroup]
static belongsTo = [Eventgroup, Classgroup]
static constraints = {
eventgroup nullable:true
}
在Grails多对多映射中,我们应该在两个关联类之间定义一个所有者类。 正如您之前定义的:
belongsTo = [eventgroup:Eventgroup,classgroup:Classgroup]
使用此GORM尝试在事件表下创建一个具有类组名称的列,但对于与类组的多对多关联,数据库应该假设有第三个表,以便为事件和类组之间的多对多关联提供多条记录。这样的错误也是如此
因此,稍后当你提到:
belongsTo = [Eventgroup, Classgroup]
它的工作原理是它刚刚得到了所有者的信息。
所以这里Classgroup将是关联的所有者,因为事件属于Classgroup
希望这有帮助。谢谢