具有BigDecimal而非Long的实体类 - 生成的Hibernate工具

时间:2013-08-01 10:55:57

标签: hibernate entity long-integer bigdecimal

具有BigDecimal但不是Long的实体类

我的实体类充满了Hibernate工具。不幸的是,一些'long'值变为'BigDecimal'数字(Column:AGE,BIRTHDATE),但不是全部(Column: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工具生成实体类(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;

谢谢!

1 个答案:

答案 0 :(得分:4)

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

reveng.xml映射配置:

reveng.xml mapping configuration

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

use this reveng.xml in your generator