2012-04-11 18 views
4

データベースとHibernateのマッピング。Hibernateでプリミティブまたはラッパークラスを使用していますか?

@NotNull制約付きのDoubleを使用する必要があります。 または、代わりにdouble型を使用してください。 ベストプラクティスは何ですか?

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

OR

@Column(name = "price_after_tax") 
public double getPriceAfterTax() { 
    return priceAfterTax; 
} 

(Javaの6を使用して)多くの感謝!

+2

「BigDecimal」(ただし、使用中の痛み)が良い選択になるとは言いません。そしてDOUBLEの代わりにDECIMALSというデータベースで。ダブルは小さな誤差をもたらすので。 –

答えて

5

null値を保持できるので、Doubleを使用してください。だから将来的にDBカラムをnullにできると決めたら、あなたは安全です。この状態で@NotNull'. You can not use the primitiveダブルを削除するだけです。

いずれにしても、hibernateはオブジェクトリレーショナルマッピングであり、私はいつも自分のエンティティBeanでObjectを使うことに固執します。それは議論の余地があるポイントです。

priceAfterTaxの値がわからない、または値がないなど、プリミティブにも論理的な問題があります。プリミティブを使用する場合、デフォルト値は常に0.0になります。そのことはは税金がないと言います!。しかし、私がDoubleを使用すると、デフォルトではnullという意味になります。私は税金がわかりません。

関連する問題