Как проверить список Hibernate на предмет его инициализации? - PullRequest
0 голосов
/ 27 октября 2011

В Hibernate, скажем, у вас есть класс под названием отдел, и он содержит список сотрудников.Есть ли способ проверить список сотрудников, чтобы определить, был ли он еще инициализирован?Кажется, неважно, к какому свойству вы обращаетесь, это исключение для ленивого инициализатора.Есть ли способ проверить его инициализацию без получения исключения?

Я хотел бы посмотреть, инициализирована ли она, и если нет, просто выполните запрос данных и заполните его.

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Есть ли способ проверить список сотрудников, чтобы определить, был ли он еще инициализирован?

Вы можете использовать Hibernate.isInitialized () если спящий объект инициализирован или нет.

Я хотел бы посмотреть, инициализирована ли она, а если нет, просто выполните запрос данных и заполните их.

Вы можете использовать Hibernate.initialize () для принудительной инициализации спящего объекта.Он запросит и заполнит данные, если они еще не инициализированы.

1 голос
/ 27 октября 2011

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

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

Используйте open-session-in-view (который сохраняет сеанс открытым в течение всего срока действия запроса в веб-приложении) или инициализируйте коллекцию заранее, когда родительский элемент загружен (что имеет ограничения на загрузку данные, которые могут не понадобиться, что нормально, если это всегда нужно).

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