我似乎偶然发现了使用mysql的grails gorm / hibernate中的错误。
我有一个abstractDomainClass,它位于sources / groovy下。在这个抽象的域类中,我定义了一个很多关系。
然后我定义了一个从抽象域类继承的DomainClass。现在,当我在MicrosftSQL Server中使用它时,一切正常,但是当我尝试将它与MySQL一起使用时,我得到以下错误消息:
Caused by MappingException: Foreign key (FK96018AD68612E650:domain_class [])) must have same number of columns as the referenced primary key (user_group [id])
我的abstractDomainClass看起来像这样:
abstract class AbstractDomainClass {
String name
Set<UserGroup> userGroups
static hasMany = [userGroups: UserGroup]
static constraints = {
name(nullable: false, blank: false)
}
String toString() {
return name
}
}
我的DomainClass看起来像这样:
class DomainClass extends AbstractDomainClass {
String earliestEntryDate
static constraints = {
earliestEntryDate(nullable: true, blank: false, attributes: [sortable: false])
}
}
UserGroup Domain类看起来像这样
class UserGroup {
String name
static hasMany = [domainClasses: DomainClass]
static belongsTo = [DomainClass]
static constraints = {
name(nullable: false, blank: false)
}
@Override
String toString() {
name
}
}