2012-04-11 2 views
4

최대 절전 모드로 데이터베이스 매핑.Hibernate에서 프리미티브 나 래퍼 클래스를 사용하고 있는가?

@NotNull 제약 조건이있는 Double을 사용해야합니다. 또는 이중 기본 유형을 대신 사용하십시오. 모범 사례는 무엇입니까?

많은 감사를

@Column(name = "price_after_tax", nullable=false) 
@NotNull 
public Double getPriceAfterTax() { 
    return priceAfterTax; 
} 

또는

@Column(name = "price_after_tax") 
public double getPriceAfterTax() { 
    return priceAfterTax; 
} 
(자바 6을 사용)!

+2

'BigDecimal'(사용중인 통증이 더 나은 선택 임)을 언급하는 것을 삼가 할 수는 없습니다. DOUBLE 대신 DECIMALS 데이터베이스에. 이중으로 작은 오류가 발생합니다. –

답변

5

null 값을 유지할 수 있으므로 Double을 사용해야한다고 생각합니다. 따라서 미래에 DB 열을 null로 설정할 수 있다고 결정하면 안전합니다. 이 상태에서 @NotNull'. You can not use the primitive double을 제거하기 만하면됩니다.

어떤 경우에도 최대 절전 모드는 개체 관계형 매핑이므로 필자는 항상 엔터티 빈에서 개체를 사용합니다. 그것은 논쟁의 여지가있는 지점입니다.

priceAfterTax 값을 모르거나 모르는 경우에도 프리미티브에 논리적 인 문제가 있습니다. 프리미티브를 사용하면 기본값은 항상 0.0이됩니다. 그 말은 세금이 없습니다!. 하지만 Double을 사용하면 null 기본적으로 의미합니다 세금이 무엇인지 모르겠습니다.

관련 문제