删除服务内的实体时引发异常:org.hibernate.LazyInitializationException:无法初始化代理 - 没有会话 [重复]
Posted
技术标签:
【中文标题】删除服务内的实体时引发异常:org.hibernate.LazyInitializationException:无法初始化代理 - 没有会话 [重复]【英文标题】:Exception thrown while deleting entity inside of service: org.hibernate.LazyInitializationException: could not initialize proxy - no Session [duplicate] 【发布时间】:2014-04-28 14:58:51 【问题描述】:我在我的 Spring 应用程序中使用 HibernateTemplate。每当我尝试调用诸如保存、更新或删除之类的操作时,都会将其视为异常。
服务 org.hibernate.LazyInitializationException 中的删除异常:无法初始化代理 - 无会话
【问题讨论】:
显示引发异常的代码?并注释了@Transactional
?还添加完整的堆栈跟踪。
是的,我正在使用@Transactional。我的打印堆栈跟踪是服务 org.hibernate.LazyInitializationException 中的删除异常:无法初始化代理 - 没有会话
我的意思是复制所有异常行而不是一行。并添加实体和 dao 类。
【参考方案1】:
异常表示您正在尝试加载一个超出会话的惰性集合。这意味着您需要在使用之前初始化集合对象。初始化应该在实体设置方法或 DAO 类中进行。通常不建议在实体的 setter 方法中进行初始化,因为它会将您的实体与休眠框架耦合。所以最好的地方是DAO层。但是这里我提到的只是供您参考
try this in your code
public void setInfo(IndentityInfo info)
Hibernate.initialize(info);
this.info = info;
希望这有帮助!
【讨论】:
以上是关于删除服务内的实体时引发异常:org.hibernate.LazyInitializationException:无法初始化代理 - 没有会话 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
“ObjectStateManager 中已存在具有相同键的对象...”将实体状态设置为已修改时引发异常
LINQ 实体框架查询在 EF Core 中不起作用,引发异常