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

时间:2012-04-11 16:30:48

标签: java hibernate mapping double primitive

使用Hibernate映射数据库。

我们应该使用带有@NotNull约束的Double 或者使用双原语类型。 什么是最佳做法? (使用Java 6)

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

OR

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

非常感谢!

1 个答案:

答案 0 :(得分:6)

我认为你应该使用Double因为它甚至可以保持空值。因此,将来如果您决定使DB列无效,那么您就是安全的。您只需要在这种情况下删除@NotNull'. You can not use the primitive double`。

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

原语甚至存在逻辑问题,比如你不知道或没有priceAfterTax的值。如果使用原语,则默认值将始终为0.0。哪个说没有税!。但是当我使用Double时,默认设置为null意味着我不知道税是什么。