Rimuovere l'imbottitura aggiunta dai database DB2 legacy sui risultati delle query
-
28-09-2019 - |
Domanda
Ho la seguente configurazione.
'Apps/Reports' <---------> 'DB2 Connect' <------------> 'Legacy DB2 on AS400'
`Hibernate` `native calls`
Quando i dati vengono recuperati dall'applicazione, verranno imbottiti con spazi extra se la lunghezza è inferiore alla lunghezza della colonna. Da notare quando si esegue una query, se il WHERE
Il parametro perché non è imbottito, è imbottito automaticamente con spazi extra in modo tale che la query recuperà gli stessi record per un parametro imbottito e non pagato.
Esiste un modo (preferibilmente su IBM DB2 Connect o Connection String Parameter) per rimuovere gli spazi bianchi extra da un set di risultati?
Soluzione
Le colonne nell'Iseries sono definite come char ()? Suppongo, perché è così che funziona char (): è una lunghezza del campo fisso, non una lunghezza del campo variabile (ecco a cosa serve Varchar).
Altri suggerimenti
È possibile implementare un utente ibernato che tagli automaticamente le stringhe. Ci sono buoni exmaples
https://forum.hibernata.org/viewtopic.php?t=928294
http://java.dzone.com/articles/annoting-custom-types
http://santescas.blogspot.de/2014/02/creando-un-usertype-de-hibernate-que-se.html