OpenSessionInView模式
Spring+Hibernate中, 集合映射如果使用lazy="true", 当PO传到View层时, 出现未初始化session已关闭的错误,只能在dao先初始化Spring提供Open Session In View来解决这个问题, 有两种方式
1. Interceptor
说明: 个人更喜欢用Interceptor方式, filter是在web.xml中定义
有了OpenSessionInView,并不是一切就ok了。简单的crud可以,但对于复杂业务逻辑就要想点法子。
OSIV默认是request per session的, 所以即使没有显式update(po),Hibernate也会帮你保存的,dao的业务判断就无效,还好有evict()可用。
update code
本文介绍如何使用Spring的OpenSessionInView模式解决Hibernate懒加载时因会话关闭导致的问题。通过Interceptor和Filter两种方式实现,特别指出在复杂业务场景下需要注意的问题。
905

被折叠的 条评论
为什么被折叠?



