我有一个类似于以下内容的域类:
class Foo {
static hasMany = [bar: String]
}
问题是这会在MySQL中创建一个VARCHAR(255)
列的连接表,这比我需要的要大得多。在我的示例中,bar是Set而不是索引集合,因此尝试使用indexColumn不起作用。 joinTable没有用于更改列类型/长度的属性。是否可以在不更改域类结构的情况下更改为列大小?
答案 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)']
}
}