![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| hanabi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 18.8.2007 Репутация: нет Всего: нет |
Имеем stateless session bean EJB3 в котором есть бизнесметод - скажем вытянуть кучу данных из БД быстренько их обсчитать и снова запихнуть в БД. Данные как положено сделаны как Entity EJB3, связаны друг с другом через OneToMany ManyToOne все как записано в JPA
далее имеем сей казус - statlesssession bean с помощью EntityManager вытягивает один за одним объекты и запускает их в объект "калькулятор". сей калькулятор является обычным Java классом, он понятия не имеет ни о какой БД и и полагает что все ссылки объекта на другие объекты работают. Упс.. как только калькулятор пытается вытянуть объект третьего уровня ссылки имеем классический эксепшн Lazy Fetching и сказку о том что сессия закрыта или не найдена. Заглядываю в JPA API и читаю, что EntityManager гарантировано открыт на все время выполнения метода, то есть если обратился к какому-то Entity объекту, а он не инициализирован, то EntityMAnager автоматически и незаметно подтягивает данные для заполнения объекта. Но что ж выходит? почеум я получаю тогда lazy fetch если он вроде как должен все данные EntityManager сам подтянуть? Или я что то не правильн опонимаю? ps. не предлагайте eager fetching |
|||
|
||||
| hamsterKSU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 401 Регистрация: 20.10.2006 Где: Украина, Херсон Репутация: 3 Всего: 11 |
я так понимаю вы сипользуете Hibernate - если да то там есть такой параметр для Lazy инициализации как @Fetch(FetchMode.SUBSELECT) - он мне помог
на topLink c Lazy - все нормально работало |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |