hibernate - 具有 BigDecimal 而不是 Long 的实体类 - 生成的 Hibernate 工具

标签 hibernate entity long-integer bigdecimal

BigDecimal 而非 Long 的实体类

我的实体类是使用 Hibernate 工具生成的。不幸的是,一些“长”值变成了“BigDecimal”数字(列:AGE、BIRTHDATE),但不是全部(列:ID)!

为什么会发生这种情况,我该如何解决?

我的 Oracle 数据库中的一个表:用户

    Column    -   Type   - Decimal Digits - Column Sizes
    ----------+----------+----------------+-------------
    ID        - NUMBER   -     0          - 10
    AGE       - NUMBER   -     0          - 38
    BIRTHDATE - NUMBER   -     0          - 38
    FIRSTNAME - VARCHAR2 -   <null>       - 32

使用Hibernate Tools生成实体类(POJO)

@Id
@Column(name = "ID", unique = true, nullable = false, precision = 10, scale = 0)
private long id;

@Column(name = "AGE", precision = 38, scale = 0)
private BigDecimal age;

@Column(name = "BIRTHDATE", precision = 38, scale = 0)
private BigDecimal birthdate;

@Column(name = "FIRSTNAME", length = 32)
private String firstname;

谢谢!

最佳答案

Hibernate 工具可以配置为自定义类型映射。 在 reveng.xml 中指定所有映射(参见屏幕截图)。 将任何 JDBC 类型转换为任何 Hibernate 类型并再次运行您的生成器。

reveng.xml 映射配置:

reveng.xml mapping configuration

在您的生成器中使用此 reveng.xml:

use this reveng.xml in your generator

关于hibernate - 具有 BigDecimal 而不是 Long 的实体类 - 生成的 Hibernate 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17992108/

相关文章:

java - 使用 id 和 version 列映射一对多关系

持久性无知和 DDD 现实

asp.net-mvc - Ajax 长轮询无法正常工作

c - C中溢出后有符号和无符号的不一致相等

java - 在 Java 中,float(具有 4 字节内存)可以保存 long(具有 8 字节内存)值。如何?

java - HQL 表达式中的 Null

java - 主键由一个外键组成

java - 不正确的 ehcache 统计信息 : hits+misses == 0

java - 删除与另一个对象有manyTomany关系的对象

实体列表的 HTTP 范围 header