我在Oracle 11 XE上有一个数据库,我的所有表的主键均为NUMERIC(22,0)
。我已经在Eclipse中使用Hibernate tools
生成了模型类。不幸的是,所有NUMERIC
字段均已实现为BigDecimal
。甚至代表INT
列的字段也被更改。我尝试了一些逆向工程,但对于我来说似乎不起作用。
我该如何解决?
您最好使用BIGINT
而不是NUMERIC(22,0)
作为ID。然后重新生成实体。 Java-ID的类型应为Long
。如果不是,则必须手动更改类型。通常,您应该看到生成的实体,而不是需要修改的模板。
您可以在Hibernate工具中自定义类型映射。在reveng.xml中指定映射。将每种JDBC类型转换为Hibernate类型,然后再次运行生成器。例如:
<sql-type>jdbc-type="NUMERIC" precision="22" hibernate-type="Long"</sql-type>
另请参见:http://omtlab.com/java-hibernate-reverse-engineering-eclipse-tutorial/