openSessionInView的使用及注意事项

来源:互联网 发布:mac下方出现白条 编辑:程序博客网 时间:2024/04/28 22:12

用途:可以将session的作用域扩大用于ssh整合中。如hibernate中使用load()方法时在struts中session已经关闭 则会引起错误

<!-- 将session的生命周期托管给自定义的filter管理,以延长其生命周期 -->
   <filter>
  <filter-name>openSessionInView</filter-name>
  <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>openSessionInView</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

使用时注意

(1)在web.xml 中配置时需要配置在struts2的filter的前面。因为filter有先后顺序。

(2)若配置了openSessionInView这个filter,则需要在spring中添加声明式的事物管理。否则只能进行读操作,在进行写操作时则会产生

org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition. 这样的异常。

原创粉丝点击