是否可以使用JPA在Oracle中存储BigDecimal 0.000

时间:2013-08-14 00:33:01

标签: java jpa-2.0 eclipselink oracle11gr2 ojdbc

我在JPA实体上有以下属性:

@NotNull
@DecimalMin("0.000")
@DecimalMax("1.000")
@Digits(integer = 1, fraction = 3)
@Column(nullable = false, precision = 4, scale = 3)
private BigDecimal confidence;

public BigDecimal getConfidence() {
    return this.confidence;
}

public void setConfidence(BigDecimal confidence) {
    this.confidence = confidence;
}

如果置信度设置为“0.000”,例如:setConfidence(new BigDecimal(“0.000”));然后将实体持久化到数据库,然后从数据库中取回,获取的值将失去其精度和比例,并且只是0.

部署Web应用程序时,JPA / Eclipselink会创建数据库架构。

我的环境是EclipseLink 2.3.2.v20111125-r10461,Oracle 11g R2,Oracle JDBC瘦驱动程序OJDBC 1.6。

1 个答案:

答案 0 :(得分:0)

数据库在0到0.000之间没有区别,所以没关系。

Java也无关紧要。如果你想打印3位数的bigdecimal,那么只需使用打印机来执行此操作。

如果你发出的是Java中的equals()方法,那么不要使用它,而是使用compareTo()。

http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial