2015-07-15 20 views
5

Ho un database su Oracle 11 XE e tutte le mie tabelle hanno chiavi primarie che sono NUMERIC(22,0). Ho generato classi di modelli con Hibernate tools in Eclipse. Sfortunatamente, tutti i campi NUMERIC sono stati implementati come BigDecimal s. Anche i campi che rappresentano le colonne INT vengono modificati. Ho provato un po 'di reverse engineering, ma sembra che non funzioni nel mio caso.Modifica tipo PK nelle classi modello di Oracle db, generato con ibernazione

Come posso risolvere il problema?

risposta

0

È possibile personalizzare la mappatura dei tipi negli strumenti di Ibernazione. Specificare i mapping nel reveng.xml. Traduci ogni tipo di JDBC in un tipo di ibernazione ed esegui di nuovo il tuo generatore. Per esempio.

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

vedi anche: http://omtlab.com/java-hibernate-reverse-engineering-eclipse-tutorial/

+0

Non funziona. Questa risposta esiste già su Stack – xenteros

0

È meglio utilizzare BIGINT invece di NUMERIC(22,0) per gli ID. Quindi ri-generare le entità. Gli ID Java dovrebbero essere di tipo Long. Se no, devi cambiare il tipo manualmente. In generale dovresti vedere le entità generate più di un modello che ha bisogno di alcune modifiche.

Riferimento: Mapping SQL and Java Types

+0

Non funziona per me:/ – xenteros

+0

Che cosa non funziona? – Kai

+0

Genera ancora BigDecimal da BIGINT – xenteros