背景

使用的环境: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)相关推荐

  1. org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in r...

    2019独角兽企业重金招聘Python工程师标准>>> Struts Problem Report Struts has detected an unhandled exceptio ...

  2. Hibernate Write operations are not allowed in read-only

    Hibernate Write operations are not allowed in read-only错误异常处理 转载于:https://www.cnblogs.com/dancser/p/ ...

  3. Write operations are not allowed in read-only mode

    报的错误如下: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Sessi ...

  4. 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 ...

  5. ssh备考-08 SSH三大框架整合

    可耻+可笑 救不活了的双非 算了,本来也就是过家家 目录 学习过程一步一步搭建框架,然后写需求 每次专注一个需求  每次最好也都自己搭建一次框架 可以照着文档模板复制粘贴 但是得自己搭建 一.新建项目 ...

  6. org.springframework.dao.InvalidDataAccessApiUsageException: Write operations

    在配置 springmvc+hibernate+MySQL 的时候,出现如下问题: 异常信息: org.springframework.dao.InvalidDataAccessApiUsageExc ...

  7. 在spoc上安装linux系统,郁闷,HACMP的C-SPOC没办法用

    我用C-SPOC报错: cl_extendvg: This operation is not allowed on a RAID device. cl_extendvg: No node has ac ...

  8. [翻译]关于SQL CE RDA数据同步的FAQ

    Q1. 怎么判断用 RDA Pulled 的表是否是被跟踪的?什么是 RDA 订阅表? A1. 系统表 __sysRDASubscriptions 保存了 RDA 订阅的信息.如果表被拉下来时 tra ...

  9. OpenSessionInViewFilter原理以及为什么要用OpenSessionInViewF

    2019独角兽企业重金招聘Python工程师标准>>> truts2 里面OpenSessionInViewFilter 一定要写在最上面 下面有讲解 --------------- ...

最新文章

  1. 关系型数据库到HBase的数据储存方式变迁
  2. 简述C语言的标准发展,简述C语言的发展历史
  3. [Java]Thinking in Java 练习2.12
  4. 买房申请房贷被拒,首付款要打水漂了吗?
  5. 2017.8.14 分手是祝愿 失败总结
  6. 兰顿蚂蚁 java源代码_兰顿蚂蚁 (Java代码)41行代码
  7. vue如何和PHP交互,VUE中如何使用Vue-resource完成交互
  8. 归心似箭,IT达人分享抢票攻略
  9. 一张正面人脸照片,3D真人头像毫秒级重建。
  10. gc buffer busy release gc buffer busy acquire
  11. ubuntu更新后显卡驱动失效解决方案
  12. 语句摘抄——第16周
  13. 金秋发布会·实在里程碑,从RPA 向 IPA 进军!
  14. VB利用API画线性渐变矩形
  15. 深度学习及并行化实现概述
  16. 硬件设计——上拉电阻与下拉电阻
  17. 关于ADS安装失败的问题
  18. ES6简介、新特性、Babel编译器、babel-cli工具、babel-polyfill工具(安装和使用)
  19. 高等数学学习笔记——第四十九讲——一阶常微分方程的求解
  20. 第二证券|紧盯“有诺不行”隐疾 补齐上市公司高质量发展“短板”

热门文章

  1. PHP防注入安全代码
  2. 疑似又一vivoX80新机通过3C质量认证:全系标配80W快充
  3. 京东方期望为iPhone 15高端版供应高刷新率OLED面板
  4. 国内手机厂商要复活“大哥大” 网友:想买
  5. 不到6年“拼”活近8亿用户 拼多多还在狂奔
  6. 独家=垄断?从抖音快手电影宣发签独家谈起
  7. 网易云音乐喊话酷狗称其“耍猴”:专利文件与“跟听”毫无关系
  8. iPhone 12快来了!苹果或本周公布发布会时间
  9. 豪宅周边5家盒马却不配送?盒马回应...
  10. 我们看到一些知乎大V,开始拍视频了