我将 JPA 与 hibernate 和 Oracle DB (oracle 11.2 xe) 结合使用。我试图保存一个大数字,但保存在数据库中的不是我输入的大数字。
我有一个列,我想在其中存储映射的大十进制数,如下所示:
@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"
但是在数据库中存储的值为 20...
版本:
jpa 1.0
hibernate-3.2.6.ga.jar
jboss-4.2.3.GA
我做错了什么?
最佳答案
升级到ojdbc14版本10.2.0.5解决了这个问题(我认为它在10.2.0.4中已修复)
关于hibernate - BigDecimal 未使用 JPA 正确保存在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7829509/