在使用hibernate生成的Oracle db的模型类中更改PK类型

xen*_*ros 5 java oracle hibernate hibernate-mapping oracle11g

我在Oracle 11 XE上有一个数据库,我的所有表都有主键NUMERIC(22,0).我Hibernate tools在Eclipse中生成了模型类.不幸的是,所有NUMERIC字段都已实现为BigDecimals.甚至表示INT列的字段也会更改.我尝试了一些逆向工程,但似乎在我的情况下不起作用.

我该如何解决?

wgi*_*cht 1

您可以在 Hibernate 工具中自定义类型映射。在 reveng.xml 中指定映射。将每个 JDBC 类型转换为 Hibernate 类型并再次运行生成器。例如

 <sql-type>jdbc-type="NUMERIC" precision="22" hibernate-type="Long"</sql-type>
Run Code Online (Sandbox Code Playgroud)

另请参阅: http ://omtlab.com/java-hibernate-reverse-engineering-eclipse-tutorial/