为什么我得到一个"没有所有者在域类之间定义.."错误?

时间:2014-12-07 21:00:09

标签: grails gorm

我只是在学习Grails而且我经历了一些重复的Stack Overflow问题但是还没有找到解决这个问题的方法。

我有三个域类:

class Album {

    String name
    Date releaseDate

    static belongsTo = Artist
    static hasMany = [tracks:Track, artists:Artist]

    static constraints = {
        name blank: false
        releaseDate blank:false
        tracks minSize:1
        artists minSize:1       
    }
}

...

class Track {

    static belongsTo = Album

    static constraints = {
    }
}

...

class Artist {

    String name;

    static hasMany = [ albums:Album ]

    static constraints = {
        name blank:false
    }
}

运行以下grails命令会生成错误:

generate-all Album

Error loading plugin manager: No owner defined between domain classes [class musicservice.Album] and [class musicservice.Artist] in a many-to-many relationship. Example: static belongsTo = musicservice.Artist (Use --stacktrace to see the full trace)
Error 

2 个答案:

答案 0 :(得分:0)

在GORM中映射多对多的方法是在每一侧定义一个hasMany,但是一方需要拥有'拥有'方面,所以你必须在“拥有”的房产上添加belongsTo房产。侧。由于艺术家有很多专辑,而专辑有很多艺术家,Grails希望你为这个多对多的人定义自己的一面。

您可以阅读有关此in the docs的更多信息。

答案 1 :(得分:0)

我需要在Grails命令中使用完整的包名。

grails generate-all musicservice.Album