Grails:GORM:OneToMany:更改连接列的名称

时间:2016-12-29 15:59:52

标签: java mysql hibernate grails gorm

我正在使用grails,我遇到了数据库架构的问题。 我有2个域名:匹配和评论。一场比赛有很多评论。

(我删除了一些属性以使代码可读)

评论:

class Comment {

    static mapping = {
        table "comments"
        version false
        match column: 'match_id'
    }

    static belongsTo = [match: Match]
}

并且匹配:

class Match {

    static mapping = {
        table "matches"
            version false
            id column: "id"
            comments joinTable:
                [name: 'comments',
                 key: 'id',
                 column: 'match_id',
                 type: Long]
    }  

    static hasMany = [comments : Comment]
    //static mappedBy = [comments: 'match']

}

当Grails生成我的数据库时,它会为我的外键创建一个“comments_idx”列,但我想使用已经用于其他应用程序的“match_id”。

我尝试了一些我在网上找到的解决方案:

  • 使用mappedBy
  • 不使用“BelongsTo”而只使用decalre match
  • 使用joinTable
  • 使用indexColumn

但是所有人都有同样的问题,它创建了一个“comments_idx”列,而不是使用我现有的列(match_id)

我做错了什么? 感谢

0 个答案:

没有答案