Классы таблицы Hibernate должны быть сериализуемыми?

Я наследовал Портала проект Websphere, который использование В спящем режиме 3.0 для соединения с базой данных SQL Server.

В этом проекте существует приблизительно 130 классов таблицы Hibernate. Они все реализуют сериализуемый. Ни один из них не объявляет serialVersionUID поле, таким образом, Eclipse IDE показывает предупреждение для всех этих классов.

Есть ли какая-либо фактическая потребность для этих классов для реализации сериализуемый?
Если так, есть ли какой-либо инструмент для добавления сгенерированного serialVersionUID поля к большому количеству классов сразу (только, чтобы заставить предупреждения уйти)?

48
задан Pascal Thivent 28 April 2010 в 07:08
поделиться

5 ответов

Есть ли реальная потребность в этих классах для реализации Serializable?

Спецификация JPA (JSR 220) довольно хорошо резюмирует это (то же самое относится к Hibernate ):

2.1 Требования к классу сущности

(...)

Если экземпляр сущности должен передаваться по значению как отдельный объект (например, через удаленный интерфейс), класс сущности должен реализовывать Сериализуемый интерфейс.

Таким образом, строго говоря, это не является обязательным требованием, если вам не нужно, чтобы отсоединенные объекты отправлялись по сети на другой уровень, переносились на другой узел кластера, сохранялись в сеансе HTTP и т. Д.

Если Итак, есть ли какой-нибудь инструмент для добавления сгенерированного поля serialVersionUID сразу к большому количеству классов

Я думаю, вы могли бы объединить это с помощью Задач последовательной версии (Ant) .

64
ответ дан 26 November 2019 в 18:52
поделиться

Команда Eclipse " Очистить " может это сделать. Тем не менее, он также делает гораздо больше, поэтому проверьте его и уточните настройки очистки и форматирования, прежде чем использовать его для всего пакета.

5
ответ дан 26 November 2019 в 18:52
поделиться

Hibernate вообще не требует сериализации.

7
ответ дан 26 November 2019 в 18:52
поделиться

Я не знаком с инструментом, который делал бы это автоматически для группы классов, хотя вы могли бы написать сценарий.

Если вы делаете это с помощью Eclipse механически, это не должно занимать у вас более 4-5 секунд на класс, что все равно может быть быстрее, чем сценарий.

2
ответ дан 26 November 2019 в 18:52
поделиться

Если да, то есть ли какой-нибудь инструмент для добавления сгенерированного поля serialVersionUID сразу к большому количеству классов (просто для того, чтобы предупреждения исчезли)?

Вы можете отключить это предупреждение в настройках компилятора для Eclipse - либо для проекта или вашего рабочего пространства в целом.

2
ответ дан 26 November 2019 в 18:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: