Grails更改hasMany of Strings的数据库列大小

时间:2014-07-01 14:09:22

标签: grails gorm

我有一个类似于以下内容的域类:

class Foo {
    static hasMany = [bar: String]
}

问题是这会在MySQL中创建一个VARCHAR(255)列的连接表,这比我需要的要大得多。在我的示例中,bar是Set而不是索引集合,因此尝试使用indexColumn不起作用。 joinTable没有用于更改列类型/长度的属性。是否可以在不更改域类结构的情况下更改为列大小?

2 个答案:

答案 0 :(得分:4)

这有效(用grails 2.4测试):

class Foo {
    static hasMany = [
        bars:String
    ]

    static mapping = {
        bars joinTable: [column: 'BARS_STRING', length: 112]
    }
}

答案 1 :(得分:2)

您也可以尝试sqlType,例如

class Foo {
    static hasMany = [bar: String]

    static mapping = {
        names joinTable: [column: 'bar', sqlType: 'varchar(32)']
    }

}