3

具有 BigDecimal 且不长的实体类

我的实体类是使用 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 工具生成实体类 (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;

谢谢!

4

1 回答 1

4

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

reveng.xml 映射配置:

reveng.xml 映射配置

在你的生成器中使用这个 reveng.xml:

在你的生成器中使用这个 reveng.xml

于 2013-08-02T07:30:10.293 回答