В чем разница между классом-примитивом и классом-оберткой в ​​отображениях столбцов JPA (Hibernate)? - PullRequest
6 голосов
/ 02 апреля 2010

Например, в таблице базы данных есть целочисленный столбец. Затем в java-модели он может отображаться как примитив int и Integer . Мой вопрос, в чем разница между int и Integer в этом случае? А производительность касается? Спасибо!

Ответы [ 2 ]

6 голосов
/ 02 апреля 2010

Я стараюсь избегать использования примитивов. Это особенно верно для атрибута Id. Это позволяет обнаружить еще не установленное значение путем проверки на null. При использовании Java 5 или выше, автобокс снимает боль (и не является проблемой производительности). Но и для других атрибутов. Как указал @skaffman, примитивы не подходят для пустых столбцов, и я предпочитаю, чтобы код был максимально гибким.

3 голосов
/ 02 апреля 2010

Вы уже упомянули разницу - Integer может быть null, int - нет. Так что, если столбец вашей базы данных обнуляем, то вы должны использовать Integer.

Что касается производительности, я бы не беспокоился об этом. Современные виртуальные машины очень хороши в этом.

...