Java 在Hibernate中使用原语或包装类?

Java 在Hibernate中使用原语或包装类?,java,hibernate,mapping,double,primitive,Java,Hibernate,Mapping,Double,Primitive,使用Hibernate映射数据库 我们应该将Double与@NotNull约束一起使用 或者改用double基元类型。 最佳做法是什么?(使用Java6) 或 非常感谢 我认为您应该使用Double,因为它甚至可以保存空值。因此,在将来,如果您决定使DB列为空,那么您是安全的。您只需要删除@NotNull”。在这种情况下,不能使用原语double` 在任何情况下,hibernate都是对象关系映射,我始终坚持在实体bean中使用对象。这是一个有争议的观点 原语甚至存在逻辑问题,比如说您不知道或没

使用Hibernate映射数据库

我们应该将Double与@NotNull约束一起使用 或者改用double基元类型。 最佳做法是什么?(使用Java6)


非常感谢

我认为您应该使用
Double
,因为它甚至可以保存空值。因此,在将来,如果您决定使DB列为空,那么您是安全的。您只需要删除
@NotNull”。在这种情况下,不能使用原语
double`

在任何情况下,hibernate都是对象关系映射,我始终坚持在实体bean中使用对象。这是一个有争议的观点


原语甚至存在逻辑问题,比如说您不知道或没有
priceAfterAX
的值。如果使用原语,默认值将始终存在
0.0
。上面说,没有税。但是当我使用
Double
时,默认情况下它有
null
意味着我不知道税是什么。

我不能不评论说
bigdecimic
(尽管使用起来很痛苦)会是一个更好的选择。在数据库中用小数代替双精度。双精度引入了小错误。
@Column(name = "price_after_tax", nullable=false)
@NotNull
public Double getPriceAfterTax() {
    return priceAfterTax;
}
@Column(name = "price_after_tax")
public double getPriceAfterTax() {
    return priceAfterTax;
}