Hibernate Type Mapping

chaertl

Grünschnabel
Hallo Zusammen,

bin leider nicht sehr erfahren in Sachen Hibernate und kann daher mein Problem nicht lösen.
Meine Firma verwendet noch eine sehr alte Rechnerarchitektur (Tandem) samt veralteter Datenbank. (Enscribe). Jedoch können wir über ODBC auf diese Daten zugreifen. Um einige Anwendungen zu modernisieren, habe ich den Auftrag, eine auf unserem altem System laufende Applikation in Richtung einer Spring/Hibernate Anwendung zu portieren.

An sich funktioniert es, aber bei einfachen Select-Statements (SQL, kein HQL) werden die Strings, die von der Datenbank zurück geliefert werden, nach dem ersten Buchstaben abgeschnitten. Bei den anderen Daten (int, BigDecimal) kommen die Daten vollständig. Ich habe schon versucht, die Datentypen in der Bean und im Hibernate-Mapping entsprechend anzupassen (String, Character, char, char[] usw..), aber nichts hat bisher geholfen.

Hier ein Auszug aus der Mapping Datei:

Code:
...
<key-property name="term" type="java.lang.String">
     <column name="WA_TKT_TERM" not-null="false" />
</key-property>
...

Im Trace wird mir dieses Ergebnis geliefert:

Code:
09:46:28,086 DEBUG CharacterType:172 - returning 'A' as column: WA_TKT_TERM

Besteht die Möglichkeit, die Datentypen passend zu mappen? Ich denke der Datentyp, der von der DB kommt, wird von Hibernate falsch interpretiert und daher abgeschnitten. Wenn ich den Datenzugriff über eine simple JDBC-ODBC-Bridge mache (mit ResultSet), bekomme ich vollständige Daten.
Könnte es am Dialect liegen? Für Tandem Enscribe gibt es keinen, ich "missbrauche" mometan einen Oracle Dialect. Inserts und Updates funktionieren aber. Oder müsste ich Hibernate aufbohren?

Ich würde mich sehr freuen, wenn mir jemand helfen könnte.

Viele Grüße
Christian
 
Zurück