Estoy trabajando en un proyecto que usa Oracle 10g y Grails v2.0.1.Uso de Oracle 10g CLOB con Grails 2.0.1
Estoy tratando de usar un tipo de datos CLOB para un campo de entrada de texto en mi clase de dominio, y parece que no funciona. Mi primer intento se basó en lo que leo here about GORM, Donde dice utilizar type: 'text'
, como en este ejemplo:
class Address {
String number
String postCode
static mapping = {
postCode type: 'text'
}
}
Griales asignadas que a un tipo de datos LONG
en mi DB, que es not desirable
segundo intento era probar type: 'clob'
. Eso ERA efectivo al hacer que mi tipo de datos DB fuera CLOB, pero resultó en un error de conversión de clase porque la propiedad en sí misma se definió como una cadena, es decir, String postCode
. (Tenga en cuenta que nunca he visto type:'clob'
en la documentación, pero podría deducir de la clase dialecto que clob
podría ser una entrada válida allí)
posteriormente he intentado definir la propiedad como un java.sql.Clob
, es decir Clob postCode;
, y que didn' t trabajo en absoluto. No hay mensajes de error, pero tampoco se siguió consiguiendo nada en el DB.
Di el paso final de mantener el enfoque Clob
, pero usando una propiedad String
transitoria en la que los getters/setters intentan asignar el valor transitorio de String al campo persistente de Clob. Pero no puedo encontrar la forma de obtener el valor de mi cuerda en Clob. Grails no arroja un error, pero el println()
después de mi intento de asignación nunca se imprime. Intenté usar myClob.setString(1, theString)
para hacer una tarea, pero sin éxito.
Para resumir, parece que no puedo usar un Clob en mi escenario, y me pregunto si alguien más ha visto esto y ha sido capaz de superarlo. Si es así, ¿puedes decirme qué podría estar haciendo mal?
O ... ¿hay alguna manera de anular el tipo de datos que Grails elige de modo que pueda obligarlo a mapear postCode type: 'text'
a CLOB
? No soy hábil con Hibernate, así que no estoy seguro de cómo hacerlo si hay alguna manera.
Nota al pie: antes de nuestra actualización de Grails 1.3.7 a 2.0.1, estoy bastante seguro de que el type: 'text'
hizo, de hecho, el mapa a un CLOB en Oracle. Entonces esto podría ser nuevo para 2.0.1.
Bueno, en [2.0.x documentos] (http://grails.org/doc/2.0.x/ref/Database%20Mapping/type.html) en realidad está escrito ese tipo en su caso será clob, pero No tuve que usar esto todavía, así que no puedo asegurar que esto esté funcionando en 2.0.x –