Мой класс домена выглядит так:
package com.initech.tps
class Foo
{
String stuff
static mapping = {
// mapping to a legacy table as opposed to letting Grails create it
table name: 'FOO', schema: 'TPS'
id generator: 'sequence', params: [sequence: 'MY_SEQ'],
column: 'FOO_ID', sqlType: 'integer'
foo column: 'STUFF'
}
static constraints = {
stuff(nullable: true, maxSize: 40000)
}
}
У меня сложилось впечатление, что Grails решит использовать CLOB вместо VARCHAR, основываясь на том, что я передал достаточно большое значение для ограничения maxSize, вместо этого я получаю сообщение об ошибке в консоли:
org.hibernate.HibernateException: Wrong column type in FOO for column STUFF.
Found: clob, expected: varchar(40000)
Нужен ли явный sqlType для сопоставления? Я пытался использовать разные значения maxSize и вообще не учитывать их. Также добавление sqlType: clob
или sqlType: text
не работает.
Я на Grails 1.3.7, использую IBM DB2-Express.