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

pha*_*cit 5 java mapping double primitive hibernate

使用Hibernate映射数据库.

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

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

要么

@Column(name = "price_after_tax")
public double getPriceAfterTax() {
    return priceAfterTax;
}
Run Code Online (Sandbox Code Playgroud)

非常感谢!

Man*_*uPK 6

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

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

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