项目中遇到的问题
来源:互联网 发布:js禁用按钮 编辑:程序博客网 时间:2024/06/12 00:44
遇到问题:
在项目中使用SSH的时候,会开启OpenSessionInViewFilter来阻止延迟加载的错误,但是在我们开启OpenSessionInViewFilter这个过滤器的时候FlushMode就已经被默认设置为了MANUAL,如果FlushMode是MANUAL或NEVEL,在操作过程中 hibernate会将事务设置为readonly,所以在增加、删除或修改操作过程中会出现如下错误
Java代码:
rg.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition;
解决方法:
直接修改OpenSessionInViewFilter过滤器的配置,配置过滤器的时候配置时候直接指定flushMode。采用下面的方式即可:代码如下: 在web.xml文件中添加如下代码:即可解决延迟加载与上面的错误信息
Xml代码
<!--
hibernate由于设置了延迟加载,在action中并没有真正地查询数据
当跳到jsp页面上要显示数据时,hibernate中的session却已经关闭,导致数据无法显示 该过滤器的作用就是可以避免这种情况
-->
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
关联表查询SQL:
select * from TBL_ASSETS_INFO a ,sino_tag b where a.assets_id = b.assets_id
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- 项目中遇到的问题
- vb中如何把hh:mm:ss的时间格式转换成多少分钟?
- SpriteBatch详解——SpriteBatch.Begin 和 SpriteBatch.End
- I2C总线SCL信号无法正常拉高的问题
- 1003 Hangover
- 魔兽私服Trinitycore架构设计分析之一
- 项目中遇到的问题
- Android实现网络图片查看器和网页源码查看器
- 几种极其隐蔽的XSS注入的防护
- MaNGOS工程概介
- 二维码和相片在SQLite中的图片保存和查询 (转)
- Android分别使用HTTP协议和TCP协议实现上传文件
- SchemaExport
- 关系代数中的除法运算
- 不使用库函数实现strcpy函数