Нелегальный доступ к загрузке коллекции (hibernate.LazyInitializationException) - PullRequest
7 голосов
/ 01 декабря 2010

Я использую JPA с провайдером персистентности Hibernate.

У меня есть отображение один-ко-многим, я использовал

@OneToMany(mappedBy = "mSearchPreference", cascade = CascadeType.ALL, fetch=FetchType.EAGER)

Я могу увидеть один-много операторов SQL на консоли, даже еслия получаю исключение

illegal access to loading collection  (hibernate.LazyInitializationException)
org.hibernate.LazyInitializationException: illegal access to loading collection
    at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:341)
    at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
    at org.hibernate.collection.AbstractPersistentCollection.readElementExistence(AbstractPersistentCollection.java:142)
    at org.hibernate.collection.PersistentSet.add(PersistentSet.java:187)

Может ли кто-нибудь помочь мне, какие другие меры мне нужно сделать?

1 Ответ

0 голосов
/ 01 декабря 2010

Обычно это означает, что сеанс Hibernate уже был закрыт при попытке доступа к новым объектам.Для решения этой проблемы есть два варианта:

  • Просмотрите ВСЕ график вашей модели и при необходимости установите подходящий тип выборки EAGER.
  • Установите расширенное постоянное содержимое: @PersistenceContext (type = PersistenceContextType.EXTENDED)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...