我正在使用带有hibernate的JPA和一个Oracle DB(oracle 11.2 xe).我正在尝试保存一个大数字但是在DB中保存的内容并不是我输入的大数字.
我有一个列,我想存储一个像这样映射的大十进制数:
@Column(name = "INVOICE_AMOUNT", precision = 25, scale = 2, nullable = false)
private BigDecimal amount;
在DB中,列的创建方式如下:
INVOICE_AMOUNT NUMBER(25,2) DEFAULT 0 NOT NULL,
问题是当我试图存储号码“19999979998000000”时.就在我执行持久化之前,我调试了该字段,它说:
amount = {java.math.BigDecimal@13204}"1.9999979998E+16"
但在DB中存储的值是20 …
版本:
jpa 1.0
hibernate-3.2.6.ga.jar
jboss-4.2.3.GA
我究竟做错了什么?
最佳答案 升级到ojdbc14版本10.2.0.5解决了这个问题(我认为它已在10.2.0.4中修复)