gpt4 book ai didi

java - 使用线程时出现 LazyInitializationException

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:46 25 4
gpt4 key购买 nike

尝试从数据库获取某些对象时,我不断收到错误:

org.hibernate.LazyInitializationException (LazyInitializationException.java:19)     - could not initialize proxy - no Session

但我只在使用线程时收到错误。我们的应用结构方法调用流程如下:

FacadeImpl.saveRV() -->

@Transactional
@ParallelContext
BusinessImpl.validateEntry() -->

BusinessImpl.getOpMap() -->

@ParallelTask
DAOImpl.getMEFilter()

当尝试访问所获取实体的字段时,我收到 LazyInitializationException,定义为:

// bi-directional many-to-one association to PtoConex
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "IDN_PTO_CONEX", insertable = false, updatable = false)
private PtoConex progTptoConex;

但是,如果我从 BusinessImpl.validateEntry() 声明中删除 @ParallelContext 注释,并从 DAOImpl.getMEFilter() 中删除 @ParallelTask​​,则不会有任何问题。

最佳答案

Hibernate session 和从该 session 加载的实体不是线程安全的。如果您尝试从不同的线程访问它们,您将遇到这种“奇怪”的异常。

大多数时候,将事务与并发混合在一起也是一个坏主意。

关于java - 使用线程时出现 LazyInitializationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17741639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com