#grails #grails-orm
#grails #grails-orm
Вопрос:
У меня есть доменный класс, который выглядит следующим образом:
class Foo {
static hasMany = [bar: String]
}
Проблема в том, что это создает таблицу объединения со столбцом VARCHAR(255)
в MySQL, которая намного больше, чем мне нужно. В моем примере bar — это набор, а не индексированная коллекция, поэтому попытка использовать indexColumn не работает. У JoinTable нет атрибута для изменения типа / длины столбца. Возможно ли изменить размер столбца без изменения структуры класса домена?
Ответ №1:
Это работает (протестировано с grails 2.4):
class Foo {
static hasMany = [
bars:String
]
static mapping = {
bars joinTable: [column: 'BARS_STRING', length: 112]
}
}
Ответ №2:
Вы также можете попробовать sqlType
, например
class Foo {
static hasMany = [bar: String]
static mapping = {
names joinTable: [column: 'bar', sqlType: 'varchar(32)']
}
}