子实体引用如何使用OSIV方法在应用程序中返回LazyInitializationException(Open Session In View)?

时间:2011-08-09 12:39:02

标签: java hibernate lazy-initialization

会话在引用子对象之前立即打开,但在会话的集合的持久性上下文映射中没有特定子对象集的记录(即使包含其他子对象)(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 :(得分:0)

是否有可能使用Hibernate会话获取父级,传递了多个请求(在应用程序或会话范围内),然后与另一个Hibernate会话一起使用?

OSIV使用线程本地Hibernate会话,不同的请求可以(并且通常会)最终使用不同的Hibernate会话。