BigDecimal 未使用 JPA 正确保存在数据库中

Alf*_*TeK 5 hibernate jpa bigdecimal

我将 JPA 与 hibernate 和 Oracle DB (oracle 11.2 xe) 一起使用。我试图保存一个大数字,但保存在数据库中的不是我输入的大数字。

我有一个列,我想在其中存储映射的大十进制数,如下所示:

@Column(name = "INVOICE_AMOUNT", precision = 25, scale = 2, nullable = false)
private BigDecimal amount;
Run Code Online (Sandbox Code Playgroud)

在数据库中,列是这样创建的:

INVOICE_AMOUNT NUMBER(25,2) DEFAULT 0 NOT NULL,
Run Code Online (Sandbox Code Playgroud)

问题是当我尝试存储数字“19999979998000000”时。就在我进行持久化之前,我调试了该字段,它说:

amount = {java.math.BigDecimal@13204}"1.9999979998E+16"
Run Code Online (Sandbox Code Playgroud)

但在数据库中存储的值是 20...

版本:

jpa 1.0
hibernate-3.2.6.ga.jar
jboss-4.2.3.GA
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Alf*_*TeK 2

升级到 ojdbc14 版本 10.2.0.5 解决了问题(我认为它已在 10.2.0.4 中修复)