一尘不染

在带有jpa / hibernate的Spring中,如何保持会话打开以避免懒惰的初始化异常?

spring

我目前将实体Bean中的集合标记为渴望避免在使用EntityManager加载Bean之后尝试访问集合属性时避免出现惰性初始化异常。

如果我将集合留为延迟加载,如何保持会话打开?我曾考虑过尝试@Transactional,但即使这样行​​得通,我也不想这样做,因为在长时间内保持事务开放似乎不正确。


阅读 237

收藏
2020-04-18

共1个答案

一尘不染

基本上,你有几种选择。

-你可以使用“在视图中打开会话”模式,其中使用过滤器/拦截器/ AOP样式逻辑在服务器端逻辑开始时打开会话,并在通过时关闭会话。

-你可以实现跨越几个请求-响应周期的对话。

普通的旧Servlet筛选器是最简单的。

2020-04-18