Eu acho Encontrei uma resposta na documentação em Tipos de hibernação personalizados .
Isso parece estar funcionando.
Parece que posso usar isso para forçar meu tipo de banco de dados a ser CLOB enquanto mantenho o tipo java como String. Em outras palavras, talvez
type
escolhe um tipo de banco de dados e um tipo de Java para manipular o campo? Mas sqlType
fornece um pouco mais de granularidade para especificar o tipo de banco de dados a ser usado. Portanto, a classe Domain de amostra acima deve ficar assim no meu caso:
class Address {
String number
String postCode
static mapping = {
postCode sqlType: 'clob'
}
}
Eu peguei isso de outra pergunta do StackOverflow sobre o tópico (a própria pergunta me deu uma pista, enquanto a resposta aceita me enganou!):
Passei um dia tentando descobrir tudo isso, e foi incrivelmente frustrante. Então, talvez minhas notas sobre o tópico aqui ajudem alguém a evitar essa experiência!
E enquanto estou fazendo anotações aqui... este post se mostrou um tanto útil em termos de solução de problemas de como ser mais específico em meus mapeamentos:
Código interessante disso é reproduzido aqui:
//CONFIG.GROOVY (maps a custom SixDecimal type)
grails.gorm.default.mapping = {
'user-type'( type: SixDecimalUserType, class: SixDecimal )
}