我目前将实体Bean中的集合标记为渴望避免在使用EntityManager加载Bean之后尝试访问集合属性时避免出现惰性初始化异常。
如果我将集合留为延迟加载,如何保持会话打开?我曾考虑过尝试@Transactional,但即使这样行得通,我也不想这样做,因为在长时间内保持事务开放似乎不正确。
基本上,你有几种选择。
-你可以使用“在视图中打开会话”模式,其中使用过滤器/拦截器/ AOP样式逻辑在服务器端逻辑开始时打开会话,并在通过时关闭会话。
-你可以实现跨越几个请求-响应周期的对话。
普通的旧Servlet筛选器是最简单的。