在Spring中使用WebSockets时如何避免LazyInitializationException?

时间:2015-07-22 17:04:37

标签: spring hibernate spring-mvc websocket stomp

任何建议如何避免以下设置中的臭名昭着的LazyInitializationException(使用spring和hibernate):

@MessageMapping("/activate/foo")
@SendToUser("/queue/result")
public Result doit(Integer fooId) {
    Foo foo = fooService.load(fooId); // via hibernate
    result = ... // accessing foo outside a hibernate transaction
                 // therefore a LazyInitializationException is thrown
    return result;
}

怎么办?

  1. 使用@Transactional注释doit()?
  2. 计算使用@Transactional注释的方法内的结果?
  3. 手动执行OpenSessionInViewFilter为servlet请求做的事情?
  4. 在Spring中为WebSockets使用某种类型的“随时可用”过滤器或拦截器(哪一个,如何,示例?)
  5. Tomcat WebSocket过滤器?
  6. 现在我投票给3,但看起来很酷......; - )

0 个答案:

没有答案