Hibernate: исключение произошло в целевой ВМ: не удалось лениво инициализировать коллекцию - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть User до Cars 1-к-н.сопоставления:

Пользователь :

<set inverse="true" name="cars" table="CAR">
      <key>
        <column name="UserID" not-null="false"/>
      </key>
      <one-to-many class="entity3.Car"/>
</set>

Автомобиль:

<many-to-one class="entity3.User"  name="user">
      <column name="UserID" not-null="false"/>
</many-to-one>

После того, как я получу некоторых пользователей и закрою сеансв отладчике в user я вижу PersistentSet cars с этим исключением в качестве значения:

>Exception occurred in target VM: failed to lazily initialize a collection of role: entity3.User.cars, no session or session was closed 
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: entity3.User.cars, no session or session was closed

Это нормальное поведение?Эти исключения замедляют исполнение?

1 Ответ

1 голос
/ 14 февраля 2012

Вы получаете это исключение, потому что сеанс, который использовался для извлечения сущности User, был закрыт (более вероятно, что он был где-то уничтожен в коде).Если вам нужно получить коллекцию Cars, вам нужно будет убедиться, что у вас открыт тот же сеанс, когда вы пытаетесь получить доступ к свойству Cars в сущности User.

Я тоже однажды попал в эту ловушку.

Не думаю, что само по себе исключение вызывает проблемы с производительностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...