2010-12-01 3 views
8

Я использую JPA с провайдером непрерывности Hibernate.Незаконный доступ к сборке для загрузки (hibernate.LazyInitializationException)

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

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

Я вижу один ко многим заявлениям SQL на консоли, Eventhough я получаю исключение

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

вы уверены, что это не очередной сборник, который вы добавляете к? У вас должно быть больше доступного пакета. – Bozho 2010-12-01 18:32:38

+0

привет здесь полная трассировка стека – 2010-12-02 10:02:41

ответ

0

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

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