Почему слушатели жизненного цикла в Hibernate Serializable? - PullRequest
5 голосов
/ 24 июня 2009

Интерфейсы Hibernate, которые вы реализуете для предоставления прослушивателей событий, например: org.hibernate.event.PostInsertEventListener; все расширяют Serializable.

Однако нигде не объясняется, почему ваши слушатели должны быть сериализуемыми. Некоторое время мы вводили в них DAO с подключениями к базам данных, и это еще не удалось, однако меня беспокоит, что может быть случай, когда Hibernate пропустит прослушиватель по сериализованной ссылке и потеряет базу данных. подключение.

Итак, вопрос: почему слушатели событий hibernate должны быть сериализуемыми?

1 Ответ

2 голосов
/ 24 июня 2009

Хотя я не уверен, что правильно понял ваш вопрос, я не знаю, в чем может быть проблема с сериализуемым прослушивателем событий.

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

Так что сериализация не должна быть проблемой.

DAO не может быть сериализован (по понятным причинам).

Если у вас действительно есть прослушиватель событий со ссылкой на DAO, пометьте переменную экземпляра DAO как временную. Когда вы используете DAO, проверьте на нулевое значение, и если null, получите соответствующий DAO от DAOFactory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...