我正在使用带有hibernate的JPA和一个Oracle DB(oracle 11.2 xe)。我正在尝试保存一个大数字但是在DB中保存的内容并不是我输入的数字。
我有一个列,我想存储一个像这样映射的大十进制数字:
@Column(name = "INVOICE_AMOUNT", precision = 25, scale = 2, nullable = false)
private BigDecimal amount;
在数据库中,列的创建方式如下:
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
我做错了什么?
答案 0 :(得分:2)
升级到ojdbc14版本10.2.0.5解决了这个问题(我认为它已在10.2.0.4中修复)