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

标签 hibernate jpa bigdecimal

我将 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/

相关文章:

Java - BigDecimals 太多了?

java - BigDecimal HALF_UP 舍入问题

java - 将 hibernate orm 实体转换为复杂对象,反之亦然

java - 配置 Spring 事务或 EJB CMT

mysql - Hibernate 注释和继承

java - JPA 复合键与 ManyToOne 获取 org.hibernate.PropertyAccessException : could not set a field value by reflection setter of

java - EclipseLink JPA 跟踪更改

java - 使用 JPA 时实现 MVC

java - Hibernate映射一对多关系:Parent's PK to Child's FK

java - 如何在 Java 中为太大和太小的数字获得非常高的精度?