我在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。
答案 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