【问题标题】:Change PrimaryKey type in model classes of Oracle db, generated with hibernate更改 Oracle db 模型类中的 PrimaryKey 类型,使用 hibernate 生成
【发布时间】:2015-10-04 09:34:58
【问题描述】:

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

我该如何解决?

【问题讨论】:

    标签: java oracle hibernate oracle11g hibernate-mapping


    【解决方案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/

    【讨论】:

      【解决方案2】:

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

      参考:Mapping SQL and Java Types

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-01
        • 2011-09-24
        • 1970-01-01
        • 2019-04-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多