2012-04-11 2 views
4

Картирование базы данных с Hibernate.Использование примитивов или класса обертки в Hibernate?

Мы должны использовать Double с ограничением @NotNull Или вместо этого используйте двойной примитивный тип. Что такое лучшая практика? (С использованием Java 6)

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

ИЛИ

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

Большое спасибо!

+2

Я не могу воздержаться от комментариев, что «BigDecimal» (хотя боль в использовании) будет лучшим выбором. А в базе данных DECIMALS вместо DOUBLE. Поскольку double вводит небольшие ошибки. –

ответ

5

Я думаю, вы должны использовать Double, так как он может содержать даже нулевое значение. Итак, в будущем, если вы решите сделать столбец DB нулевым, тогда вы в безопасности. Вам просто нужно удалить @NotNull'. You can not use the primitive double` в этом состоянии.

В любом случае спящий режим является реляционным сопоставлением объектов, я всегда буду придерживаться использования объектов в своих объектных компонентах. Это спорный момент.

Существует даже логическая проблема с примитивами, скажем, что вы не знаете или не имеете значения для priceAfterTax. Если вы используете примитив, значение по умолчанию всегда будет 0.0. Что говорит, что нет налога!. Но когда я использую Double, он имеет null по умолчанию означает Я не знаю, что такое налог.

Смежные вопросы