Mysql 在Grails2.0.0中映射复合外键

Mysql 在Grails2.0.0中映射复合外键,mysql,hibernate,grails,gorm,Mysql,Hibernate,Grails,Gorm,在尝试映射一个复合外键时,我遇到了org.hibernate.MappingException,该外键的字段也是Grails2.0.0中主键的一部分。以下是我所拥有的: class ClassA { static hasMany =[classB: ClassB] static mapping = { id composite: ['classAId', 'startDate'] classAId column: 'A_ID' startDate column:

在尝试映射一个复合外键时,我遇到了org.hibernate.MappingException,该外键的字段也是Grails2.0.0中主键的一部分。以下是我所拥有的:

class ClassA {
  static hasMany =[classB: ClassB]

  static mapping = {
    id composite: ['classAId', 'startDate']
    classAId column: 'A_ID'
    startDate column: 'START_DATE'
  }

  Integer classAId
  Date startDate
}

class ClassB {
  static belongsTo = [ClassA]

  static mapping = {
    id composite:['startDate', 'classBId']
    columns {
      startDate: 'START_DATE', insertable: false, updateable: false
      classBId: 'B_ID'
      classA: { // composite FK
        column:'A_ID'
        column:'START_DATE' // adding 'insertable: false, updateable: false' doesn't work here
      } 
    }
  }

  String classBId
  Date startDate
  ClassA classA
}
我得到的例外是

…嵌套异常为org.hibernate.MappingException:实体映射中的重复列:ClassB列:开始日期应映射为insert=false update=false

如果我从ClassB中的复合主键中删除“startDate”,那么我不会得到异常。但是,这不是我可以使用的解决方案,因为我正在处理一个无法更改的模式

有什么想法吗

多亏了Grails论坛,我找到了解决这个问题的方法