2015-07-15 4 views
5

Ich habe eine Datenbank auf Oracle 11 XE und alle meine Tabellen haben Primärschlüssel, die NUMERIC(22,0) sind. Ich habe Modellklassen mit Hibernate tools in Eclipse generiert. Leider wurden alle NUMERIC Felder als BigDecimal s implementiert. Sogar Felder, die INT Spalten darstellen, werden ebenfalls geändert. Ich habe etwas Reverse Engineering versucht, aber in meinem Fall scheint es nicht zu funktionieren.PK-Typ in Modellklassen von Oracle db ändern, generiert mit Hibernate

Wie kann ich es beheben?

Antwort

0

Sie können die Typzuordnung in Hibernate-Tools anpassen. Geben Sie die Zuordnungen in der Datei "reveng.xml" an. Übersetzen Sie jeden JDBC-Typ in einen Hibernate-Typ und führen Sie den Generator erneut aus. Z.B.

<sql-type>jdbc-type="NUMERIC" precision="22" hibernate-type="Long"</sql-type> 

siehe auch: http://omtlab.com/java-hibernate-reverse-engineering-eclipse-tutorial/

+0

Es funktioniert nicht. Diese Antwort ist bereits auf dem Stack vorhanden. – xenteros

0

Sie besser BIGINT anstelle von NUMERIC(22,0) für Ihre IDs. Dann generiere die Entitäten neu. Die Java-IDs sollten vom Typ 10 sein. Wenn nicht, müssen Sie den Typ manuell ändern. Im Allgemeinen sollten Sie generierte Entitäten mehr als eine Vorlage sehen, die einige Änderungen benötigt.

Referenz: Mapping SQL and Java Types

+0

Funktioniert nicht für mich:/ – xenteros

+0

Was funktioniert nicht? – Kai

+0

Erzeugt immer noch BigDecimal von BIGINT – xenteros