当前位置: 首页 > 知识库问答 >
问题:

在Spring MVC中结束请求之前会话已关闭,get LazyInitializationException

阎建德
2023-03-14

我正在接受LazyInitializationException错误,因为在myController中,当我读取Lazy collections会话时,该会话已经关闭。只要有请求,有没有办法打开它?作为OpenSessionInView?最好的方法是什么?

我使用的是Spring Boot 1.3.0版本

共有2个答案

倪德业
2023-03-14

如果您使用的是jackson/hibernate组合,则可以注册jackson数据类型hibernate模块,并调整功能。强制\u LAZY\u加载您喜欢的属性。默认值为false意味着只有已经获取的属性才会被序列化。更改为true将强制初始化惰性属性

贺英悟
2023-03-14

您需要使用“视图中的打开会话”在事务结束后保持会话打开。

请参阅JPA的OpenSessionInViewFilter或OpenEntityManagerViewFilter

我认为这比将事务范围扩展到控制器要好。

 类似资料:
  • 问题内容: 当我按如下方式调用session.begin事务方法时: 然后我得到以下异常消息 造成此错误的原因是什么? 问题答案: 更新: 我想调用并不能保证该会话实际上是打开的。第一次,您应该使用 代替。该建议实际上与您找到的页面一致。 之前: 根据到目前为止的可用信息,我们可以得出结论,错误的原因是会话未打开;-)

  • 我有两个运行在不同机器上的ActiveMQ Artemis代理,组成一个简单的集群。我正在使用一个Java应用程序(非常基本)来生成和使用消息,以分析集群的行为。Java代码如下所示: 同时在处使用断点调试上述应用程序。如果我停止我的主代理,那么我会看到从代理接管,所有的消息都像预期的那样被移动到从代理。但是,此时,如果我继续使用我的应用程序,它将抛出,而不是在从代理中使用消息。当我再次启动主代理

  • 问题内容: 如何在Node.js中关闭可读流? 这会比以下更好: 但这不会停止阅读过程… 问题答案: 调用。它不在文档中,但是 https://github.com/joyent/node/blob/cfcb1de130867197cbc9c6012b7e84e08e53d032/lib/fs.js#L1597-L1620 显然可以完成这项工作:)它实际上所做的事情与您的相似。 EDIT 2015

  • 问题内容: 我觉得这必须埋在文档中的某个地方,但我找不到。 您如何在ExpressJS中关闭或结束(或终止)会话(无论如何)? 问题答案: Express 4.x更新的答案 会话处理不再内置于Express中。这个答案是指标准的会话模块: https //github.com/expressjs/session 要清除会话数据,只需使用: 该文档对此没有多大用处。它说: 销毁会话,删除req.se

  • 排定的方法保留有限数量的作业,并调用执行实际工作的上的方法。 异步处理机 @Async带注释的方法调用访问EntityManager的服务。

  • 我是Vert.x的新手,我试图创建一个简单的下载服务。 当此错误发生时,没有数据通过线路发送,我检查了浏览器和嗅探数据包TCP数据包(0字节从服务器发送到浏览器)。 唯一有效的方法是使用关闭连接,这至少关闭了keep-alive http连接,并结束浏览器请求。 我想要实现的是向客户机发回一些信息,以告知发生了错误,可能将状态代码设置为适当的错误,并可能向其添加一些细节(在状态文本或响应正文中)。