更改通过休眠生成的Oracle数据库模型类中的PrimaryKey类型

问题描述 投票:5回答:2

我在Oracle 11 XE上有一个数据库,我的所有表的主键均为NUMERIC(22,0)。我已经在Eclipse中使用Hibernate tools生成了模型类。不幸的是,所有NUMERIC字段均已实现为BigDecimal。甚至代表INT列的字段也被更改。我尝试了一些逆向工程,但对于我来说似乎不起作用。

我该如何解决?

java oracle hibernate oracle11g hibernate-mapping
2个回答
1
投票

您最好使用BIGINT而不是NUMERIC(22,0)作为ID。然后重新生成实体。 Java-ID的类型应为Long。如果不是,则必须手动更改类型。通常,您应该看到生成的实体,而不是需要修改的模板。

参考:Mapping SQL and Java Types


1
投票

您可以在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/

© www.soinside.com 2019 - 2024. All rights reserved.