Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate - Lazy 
V
    Опции темы
belarusrulez
Дата 28.12.2010, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 7.3.2008
Где: Belarus

Репутация: нет
Всего: нет



Exception:
Код

hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.logicway.cdshop.bean.CD.genres, no session or session was closed


filter in web.xml
Код

<filter>
        <filter-name>OpenSessionInViewFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>OpenSessionInViewFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


если поставить (fetch = FetchType.EAGER) то всё работает на ура ...

help! ;)
PM MAIL ICQ   Вверх
dobrolub
Дата 1.1.2011, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada

Репутация: 4
Всего: 16



fetch EAGER даёт инструкцию hibernate тянуть хозяйство (роли, в твоём случае) за собой сразу. Поэтому, при обращении к ролям исключительной ситуации не возникает. 

Исключительная ситуация (в отсутствии EAGER) возникает потому, что сессия закрыта. Проверь свой код на предмет закрытия сессии до обращения к списку ролей.


PM   Вверх
_sten_
Дата 1.1.2011, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 29.9.2006

Репутация: 3
Всего: 3



OpenSessionInViewFilter открывает сессию при начале риквеста, привязывает ее к текущему потоку, и закрывает при окончании. В таком случае LazyInitializationException быть не должно, разве что ты закрыл сессию сам, или обращаешься к коллекции из другого потока.
--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
belarusrulez
Дата 12.1.2011, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 7.3.2008
Где: Belarus

Репутация: нет
Всего: нет



Была такая ситуация как у коллекции 2 
1. страница 1 подгружает обьект в котором есть 2 коллекции: коллекция_1 (используется на странице 1 и соответсвенно подгружается) и коллекция_2 (не используется на странице 1 и соответсвенно не подгружается)
2. я заношу этот объект в сессию
3. перехожу на страницу 2 в которой требуется коллекция_2 и при попытки подгрузки этой коллекции мне выдаёт LazyException
Методом борьбы от этого является подгрузка данного обьекта для каждой страницы отдельно. Значит не имеет смысла тягать в сессии объекты т.к. можно тягать только ID(ведь они легче и нужны только они)

разобрался.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0849 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.