[英]How can a child entity reference return a LazyInitializationException in an app using OSIV approach (Open Session In View)?
會話似乎在引用子對象之前就已打開,但是在會話的持久性集合上下文映射(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?
是否有可能使用Hibernate會話獲取了父對象,並通過了幾個請求(在應用程序或會話范圍內),然后與另一個Hibernate會話一起使用?
OSIV使用線程本地的Hibernate會話,並且不同的請求可以(通常確實)使用不同的Hibernate會話結束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.