opensessioninview的困扰

本文介绍在整合SSH框架过程中遇到的session关闭问题及解决方案。通过调整Spring配置中的OpenSessionInViewFilter设置,解决了在视图操作时读写冲突导致的异常。
在整合ssh框架的时候,问题慢慢的得到解决,用spring来管理个个组建之间的关系,各个bean之间的关系,用spring来管理一系列的事情,我们可以省下来更多的功夫去处理我们的业务,然而hibernate的lazy属性加载的时候一般都会遇到session is closed 的情况,spring提供了一个过滤器,opensessioninview,这个过滤器就会在页面提交和页面打开之前,打开一个session。具体的过滤器是什么之类的话题这里不多说。
使用opensessioninview的时候,进行增删改的时候就会报异常
[color=blue]Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition[/color]
在网上查了很多的资料,一开始的时候认为是事物配置的问题,可是配置完以后,还是不对,大概郁闷了两三天,今天在网上找到一个办法试了试,ok。
就是在web.xml中配置过滤器的时候加上一个参数如下所示
<filter>   
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
[color=orange]<init-param>
<param-name>singleSession</param-name>
<param-value>false</param-value>
</init-param>[/color]


</filter>
.
橙色部分为新加的
我暂时还没明白这段参数到底是什么意思,现在只是分享一下我的快乐。今天很高兴解决了这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值