При управлении Быть в спящем режиме сессией вручную можно хотеть изучить sessionFactory.getCurrentSession () и связанные документы здесь:
http://www.hibernate.org/hib_docs/v3/reference/en/html/architecture-current-session.html
Это обычно означает, что владение В спящем режиме, сессия уже закрылась. Можно сделать одно из следующих для фиксации его:
HibernateTemplate.initialize(object name)
lazy=false
в Ваших hbm файлах. Хорошо, наконец вычисленный, где я был небрежен. Я находился под ошибочным понятием, что я должен обернуть каждый метод ДАО в транзакцию. Ужасно неправильно! Я извлек свой урок. Я буксировал весь код транзакции из всех методов ДАО и настроил транзакции строго на слое приложения/менеджера. Это полностью решило все мои проблемы. Данные правильно ленивы загруженный, поскольку мне нужны они, обернутый и закрытый, как только я делаю фиксацию.
Жизнь приятна...:)
Я думаю, что Пико имел в виду в своем ответе, что существует файл hbm. У меня есть файл Tax.java. Информация о сопоставлении сохраняется в файле hbm (= отображение гибернации). В теге класса есть свойство lazy . Установите для этого свойства значение true. В следующем примере hbm показан способ установки для свойства lazy значения false .
` я бы ... '
Если вы вместо этого используете аннотации, посмотрите документацию по спящему режиму. http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/
Надеюсь, это помогло.
если вы используете Lazy loading, ваш метод должен быть аннотирован
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
для Stateless Session EJB