Как ссылка на дочернюю сущность может вернуть исключение LazyInitializationException в приложении с использованием подхода OSIV (Open Session In View)? - PullRequest
1 голос
/ 09 августа 2011

Сессия кажется открытой непосредственно перед обращением к дочерним объектам, но нет записи о конкретном наборе дочерних объектов (даже если включены другие дочерние объекты) в контекстной карте постоянства сеанса коллекций (org.hibernate.engineStatefulPersistenceContext. collectionEntries).

Отношения между родительской и дочерней сущностью определяются следующим образом:

@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
@ManyToMany
@JoinTable(name="rt_vacancy_check",
           joinColumns = @JoinColumn(name="vacancy_id"),
           inverseJoinColumns = @JoinColumn(name="check_name")
)
@BatchSize(size = 10)
private Set<PreEmployCheck> preEmployChecks = new HashSet<PreEmployCheck>();

Какие могут быть причины для того, чтобы это вызвало исключение LazyInitializationException?

1 Ответ

0 голосов
/ 09 августа 2011

Возможно ли, что родитель был выбран с использованием сеанса Hibernate, передан через несколько запросов (в области приложения или сеанса) и затем использован с другим сеансом Hibernate?

OSIV использует локальный сеанс Hibernate с потоком, и разные запросы могут (и обычно делают) использовать разные сеансы Hibernate.

...