我只是在学习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
答案 0 :(得分:0)
在GORM中映射多对多的方法是在每一侧定义一个hasMany
,但是一方需要拥有'拥有'方面,所以你必须在“拥有”的房产上添加belongsTo
房产。侧。由于艺术家有很多专辑,而专辑有很多艺术家,Grails希望你为这个多对多的人定义自己的一面。
您可以阅读有关此in the docs的更多信息。
答案 1 :(得分:0)
我需要在Grails命令中使用完整的包名。
grails generate-all musicservice.Album