我似乎偶然发现了 grails gorm/hibernate with mysql 中的一个错误。
我有一个 abstractDomainClass 在源/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 域类看起来像这样
class UserGroup {
String name
static hasMany = [domainClasses: DomainClass]
static belongsTo = [DomainClass]
static constraints = {
name(nullable: false, blank: false)
}
@Override
String toString() {
name
}
}