2013-08-14 2 views
0
오라클에서의 BigDecimal 0.000를 저장하는 것이 가능

I JPA 엔티티에 다음과 같은 속성이 있습니다 :는 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 (새의 BigDecimal ("0.000")); 엔티티가 데이터베이스에 저장되고 데이터베이스에서 다시 페치되면 가져온 값은 정밀도와 배율이 손실되고 간단하게 0입니다.

웹 스키마가 배포 될 때 데이터베이스 스키마는 JPA/Eclipselink에 의해 생성됩니다.

내 환경

은 EclipseLink가 2.3.2.v20111125-r10461, 오라클 11g R2, 오라클 JDBC 얇은 드라이버 OJDBC 1.6입니다.

답변

0

는 0과 0.000 사이의 데이터베이스에 아무런 차이가 없다, 그래서 문제가되지해야한다.

Java는 중요하지 않습니다. bigdecimal을 3 자리 숫자로 인쇄하려면이 작업을 수행하는 프린터를 사용하십시오.

당신이 실행하는 경우

은 등호 자바() 방법이다,이를 사용하지 않는,은 compareTo()를 사용하는 대신.

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