Write operations are not allowed in read-only mode (FlushMode.MANUAL)
背景
使用的环境:hibernate5和springframework4.3
第一次整合SSH框架,在一个插入(save)操作中抛出这个异常
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
大概是说在只读模式下不允许写操作,凡是增删改都是写操作,怪不得,在save方法之前执行的get方法没有抛这个异常
解决
第一步:
在web.xml文件中增加一个OpenSessionInViewFilter
1.将FlushMode改为AUTO
2.注意这个OpenSessionInViewFilter要配置在org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter这个Struts2的全局Filter之前,因为web.xml文件中的Filter加载是按先后顺序来的
3.如果你是整合SSH的话,你在application-context.xml文件中势必要注册SessionFactory,OpenSessionInViewFilter的SessionFactoryBeanName的值要和application-context.xml中的SessionFactory的Bean的name属性值一样
<filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class><init-param><param-name>flushMode</param-name><param-value>AUTO</param-value></init-param><init-param><param-name>sessionFactoryBeanName</param-name><param-value>sf</param-value></init-param></filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
第二步:
在Dao层的实现类中涉及到写操作的方法的执行代码之前,先执行
getSessionFactory().getCurrentSession().setFlushMode(FlushModeType.AUTO);
例如:
public void addProduct(Product product) { //先执行这一步,再进行写操作getSessionFactory().getCurrentSession().setFlushMode(FlushModeType.AUTO);save(product);}
Write operations are not allowed in read-only mode (FlushMode.MANUAL)相关推荐
- org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in r...
2019独角兽企业重金招聘Python工程师标准>>> Struts Problem Report Struts has detected an unhandled exceptio ...
- Hibernate Write operations are not allowed in read-only
Hibernate Write operations are not allowed in read-only错误异常处理 转载于:https://www.cnblogs.com/dancser/p/ ...
- Write operations are not allowed in read-only mode
报的错误如下: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Sessi ...
- Write operations are not allowed in read-only mode 只读模式下(FlushMode.NEVER/MANUAL)写操作不允
来源:http://blog.sina.com.cn/s/blog_656ffe730100ugtw.html org.springframework.dao.InvalidDataAccessApi ...
- ssh备考-08 SSH三大框架整合
可耻+可笑 救不活了的双非 算了,本来也就是过家家 目录 学习过程一步一步搭建框架,然后写需求 每次专注一个需求 每次最好也都自己搭建一次框架 可以照着文档模板复制粘贴 但是得自己搭建 一.新建项目 ...
- org.springframework.dao.InvalidDataAccessApiUsageException: Write operations
在配置 springmvc+hibernate+MySQL 的时候,出现如下问题: 异常信息: org.springframework.dao.InvalidDataAccessApiUsageExc ...
- 在spoc上安装linux系统,郁闷,HACMP的C-SPOC没办法用
我用C-SPOC报错: cl_extendvg: This operation is not allowed on a RAID device. cl_extendvg: No node has ac ...
- [翻译]关于SQL CE RDA数据同步的FAQ
Q1. 怎么判断用 RDA Pulled 的表是否是被跟踪的?什么是 RDA 订阅表? A1. 系统表 __sysRDASubscriptions 保存了 RDA 订阅的信息.如果表被拉下来时 tra ...
- OpenSessionInViewFilter原理以及为什么要用OpenSessionInViewF
2019独角兽企业重金招聘Python工程师标准>>> truts2 里面OpenSessionInViewFilter 一定要写在最上面 下面有讲解 --------------- ...
最新文章
- 关系型数据库到HBase的数据储存方式变迁
- 简述C语言的标准发展,简述C语言的发展历史
- [Java]Thinking in Java 练习2.12
- 买房申请房贷被拒,首付款要打水漂了吗?
- 2017.8.14 分手是祝愿 失败总结
- 兰顿蚂蚁 java源代码_兰顿蚂蚁 (Java代码)41行代码
- vue如何和PHP交互,VUE中如何使用Vue-resource完成交互
- 归心似箭,IT达人分享抢票攻略
- 一张正面人脸照片,3D真人头像毫秒级重建。
- gc buffer busy release gc buffer busy acquire
- ubuntu更新后显卡驱动失效解决方案
- 语句摘抄——第16周
- 金秋发布会·实在里程碑,从RPA 向 IPA 进军!
- VB利用API画线性渐变矩形
- 深度学习及并行化实现概述
- 硬件设计——上拉电阻与下拉电阻
- 关于ADS安装失败的问题
- ES6简介、新特性、Babel编译器、babel-cli工具、babel-polyfill工具(安装和使用)
- 高等数学学习笔记——第四十九讲——一阶常微分方程的求解
- 第二证券|紧盯“有诺不行”隐疾 补齐上市公司高质量发展“短板”
热门文章
- PHP防注入安全代码
- 疑似又一vivoX80新机通过3C质量认证:全系标配80W快充
- 京东方期望为iPhone 15高端版供应高刷新率OLED面板
- 国内手机厂商要复活“大哥大” 网友:想买
- 不到6年“拼”活近8亿用户 拼多多还在狂奔
- 独家=垄断?从抖音快手电影宣发签独家谈起
- 网易云音乐喊话酷狗称其“耍猴”:专利文件与“跟听”毫无关系
- iPhone 12快来了!苹果或本周公布发布会时间
- 豪宅周边5家盒马却不配送?盒马回应...
- 我们看到一些知乎大V,开始拍视频了