![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
m1ha |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 14.5.2007 Репутация: нет Всего: 1 |
Имеются 3 таблицы. CAR, CAR_ID, CAR_USER
Таблица CAR содержит поля ID и CAR_ID и выполняет роль журналирования, то есть одна машина может быть записана несколько раз Пример CAR
Таблица CAR_ID содержит уникальные ID машины Пример CAR_ID
Таблица CAR_USER содердит в себе унакальный ID машины, и ID пользователя пример CAR_USER
Описываю класс Car У одной машины может быть много пользователей следовательно связь OneToMany
Ну и кодгда пытаюсь загрузить пользователей машины получаю org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: car.model.carUser, no session or session was closed at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358) at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:343) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86) at org.hibernate.collection.PersistentBag.toString(PersistentBag.java:483) at java.lang.String.valueOf(String.java:2615) at java.io.PrintStream.print(PrintStream.java:616) at java.io.PrintStream.println(PrintStream.java:753) Думаю, что ошибка в мапинге. Но как сделать его правильно пока не знаю. |
||||||||
|
|||||||||
Ornitos |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 13.10.2007 Где: Непал Репутация: 1 Всего: 3 |
Ошибка скорее всего не в мэпинге.
Покажи как ты загружаешь пользователей. Ещё можешь вот это посмотреть: может помочь |
|||
|
||||
m1ha |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 14.5.2007 Репутация: нет Всего: 1 |
ну так все остальные обьекты класса Car (которые так же беруться из базы) получить можно, а exception возникает только когда обращаешься к carUser я всё таки думаю, что проблема в мапинге.
Это сообщение отредактировал(а) m1ha - 2.2.2008, 22:27 |
|||
|
||||
Kangaroo |
|
||||
![]() AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 14 Всего: 104 |
Это не в маппинге ошибка, а просто вы обращаетесь к коллекции, когда уже закрыли сессию. И Хайбернейт не может подгрузить настоящие объекты из базы. Можно замапить, чтобы он не использовал лейзи инициализацию, а сразу все грузил. С маппинг файлами я использовал:
А вот как это аннотациями сделать не знаю. -------------------- Lost.... |
||||
|
|||||
arthurkas |
|
||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 11.3.2008 Репутация: нет Всего: нет |
FetchType.EAGER тоже что и lazy="false" |
||||
|
|||||
teg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 12.3.2008 Репутация: нет Всего: нет |
Ставить EAGER - плохой тон, также как и использование списка и инициализация в поле.
Итого: * надо оставить LAZY, но про хайбер что-то таки прочитать * List заменить на Set * убрать код инициализации поля |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |