Eliminar el relleno agregado por las bases de datos Legacy DB2 en los resultados de la consulta
-
28-09-2019 - |
Pregunta
Tengo la siguiente configuración.
'Apps/Reports' <---------> 'DB2 Connect' <------------> 'Legacy DB2 on AS400'
`Hibernate` `native calls`
Cuando la aplicación recupere los datos, se acolchará con espacios adicionales si la longitud es menor que la longitud de la columna. Es notable al ejecutar una consulta, si el WHERE
El parámetro de causa no está acolchado, está acolchado automáticamente con espacios adicionales de modo que la consulta recuperará los mismos registros para un parámetro acolchado y no relacionado.
¿Hay alguna manera (preferiblemente en el parámetro IBM DB2 Connect o String de conexión) para eliminar los espacios en blanco de un conjunto de resultados?
Solución
¿Las columnas en las iserías se definen como char ()? Supongo que sí, porque así es como funciona (): es una longitud de campo fija, no una longitud de campo variable (para eso es Varchar).
Otros consejos
Puede implementar un Hibernate UserType que recorte automáticamente las cadenas. Hay buenas Exmaples en
https://forum.hibernate.org/viewtopic.php?t=928294
http://java.dzone.com/articles/annotating-custom-types
http://santescas.blogspot.de/2014/02/creando-un-usertype-de-hibernate-que-se.html