будьте в спящем режиме: LazyInitializationException: не мог инициализировать прокси

70
задан Karl Richter 2 June 2017 в 20:02
поделиться

5 ответов

При управлении Быть в спящем режиме сессией вручную можно хотеть изучить sessionFactory.getCurrentSession () и связанные документы здесь:

http://www.hibernate.org/hib_docs/v3/reference/en/html/architecture-current-session.html

1
ответ дан cliff.meyers 24 November 2019 в 13:27
поделиться

Это обычно означает, что владение В спящем режиме, сессия уже закрылась. Можно сделать одно из следующих для фиксации его:

  1. , какой бы ни объект, создающий эту проблему, используйте HibernateTemplate.initialize(object name)
  2. Использование lazy=false в Ваших hbm файлах.
14
ответ дан digitalsanctum 24 November 2019 в 13:27
поделиться

Хорошо, наконец вычисленный, где я был небрежен. Я находился под ошибочным понятием, что я должен обернуть каждый метод ДАО в транзакцию. Ужасно неправильно! Я извлек свой урок. Я буксировал весь код транзакции из всех методов ДАО и настроил транзакции строго на слое приложения/менеджера. Это полностью решило все мои проблемы. Данные правильно ленивы загруженный, поскольку мне нужны они, обернутый и закрытый, как только я делаю фиксацию.

Жизнь приятна...:)

2
ответ дан Piko 24 November 2019 в 13:27
поделиться

Я думаю, что Пико имел в виду в своем ответе, что существует файл hbm. У меня есть файл Tax.java. Информация о сопоставлении сохраняется в файле hbm (= отображение гибернации). В теге класса есть свойство lazy . Установите для этого свойства значение true. В следующем примере hbm показан способ установки для свойства lazy значения false .

` я бы ... '

Если вы вместо этого используете аннотации, посмотрите документацию по спящему режиму. http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/

Надеюсь, это помогло.

1
ответ дан 24 November 2019 в 13:27
поделиться

если вы используете Lazy loading, ваш метод должен быть аннотирован

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) для Stateless Session EJB

4
ответ дан 24 November 2019 в 13:27
поделиться
Другие вопросы по тегам:

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