mysql を使用した grails gorm/hibernate のバグに遭遇したようです。
sources/groovyの下にabstractDomainClassがあります。この抽象ドメイン クラスでは、多対多の関係を定義しました。
次に、抽象ドメイン クラスから継承する 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
}
}