Использование оберточного класса Integer или int-примитива в спящем отображении

В компании, в которой я работаю, мы обсуждаем, стоит ли использовать оберточные классы для примитивов (java.lang.Integer, java.lang.Long), или же использовать примитивные типы непосредственно в POJO, которые отображают объекты в таблицы в спящем режиме.

Идея в том, что мы хотим, чтобы эти значения не были нулевыми в базе данных.

Аргументы в пользу использования примитивов:

  • Работа с этими значениями как с int означает, что они никогда не могут быть нулевыми, в таким образом делая невозможным случайно получить нулевую ссылку. на поле.
  • int=32/64 бит памяти. Целое число = 16 байт памяти а также медленнее

Аргументы в пользу использования объектов-оберток:

  • Мы можем добавить ограничение на уровне БД, чтобы всегда предотвращать нуль Значения от поступления туда
  • Мы можем закончить с вводящими в заблуждение данными, мы можем... иметь 0 вместо нулей в базе данных, когда пользователь не имеет. задать значение, а багги данные - это нелегкая добыча.
  • Объекты обладают большей выразительной силой, чем примитивы. У нас есть нулевые значения, а также целочисленные значения, поэтому их легче проверять с помощью примечаний для пример (javax.validation.constraints.NotNull).
37
задан vanvasquez 21 September 2011 в 21:19
поделиться