Write operations are not allowed in read-only mode (FlushMode.MANUAL) 的解决办法

Write operations are not allowed in read-only mode (FlushMode.MANUAL): 解决Hibernate插入数据库报错 使用 Hibernate 的 HibernateTemplate 操作数据库时,需要修改一些配置。手动 配置 Hibernate 的 sessionFactory! 阅读详情


问题描述:

    近期根据需求架构了一个小型项目,由于是公司内部使用,没有考虑三高(即高并发、高可用、高扩展),所以使用了SSH(Spring\Struts\Hibernate)进行开发的,主体架构完成后,进行的第一个操作就遇到了一个问题,内容如下:

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.


如下图所示:




问题分析:

    在我的Web.xml中配置了 “ OpenSessionInViewFilter ”过滤器,主要用来解决 Hibernate 在项目中出现的懒加载问题(当请求来的时候,才开启事物,请求结束后立即关闭事物,默认为手动开始,我们需要设置其为提交/自动的),如下图:


    根据错误信息提示:开启“ OpenSessionInViewFilter ”这个过滤器的时候FlushMode 就已经被默认设置为了 MANUAL,如果 FlushMode 是 MANUAL,在操作过程中 hibernate 会将事务设置为 readonly,在操作数据时就会出现如上的错误。


解决方案:

其实在异常信息的后面已经给出了两解决方案,如下:

方案一:

修改 FlushMode 的值为 COMMIT/AUTO,在项目的核心配置文件Web.xml中添加内容:

		<init-param>
			<param-name>flushMode</param-name>
			<param-value>AUTO</param-value>
		</init-param>


如下图:



方案二:

从事务定义中删除“ 只读 ” 标记,在Spring的核心配置文件中,找到 </tx:advice> 的节点,如下图:



    在该节点中找到操作的事物定义,直接删除掉即可,如:新增则删掉新增的事务定义,修改则删掉修改的事务定义即可。










好了,关于 Write operations are not allowed in read-only mode (FlushMode.MANUAL)  的解决办法 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,可以给我留言。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。

成功解决InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMod 因为Jpa的EntityManageFactory会与Hibernate的SessionFactory造成事务冲突,所以需要在启动类上加上下面这个注解。 阅读详情

相关推荐

从逻辑门到存储阵列:NAND与NOR闪存命名与结构原理详解

在数字电路与半导体存储器领域,逻辑门是构建一切复杂功能的基础单元,其输入输出关系定义了计算与存储的基本原理。与非门(NAND)和或非门(NOR)作为通用逻辑门,其真值表和行为模式深刻影响了芯片设计。基于这些原理,现代闪存技术发展出了两种核心架构:NAND Flash和NOR Flash。这两种闪存的命名直接源于其内部存储单元阵列的连接方式,分别模拟了与非门和或非门的逻辑关系。这种结构差异决定了它们根本的技术价值:NOR Flash采用并联结构,支持快速随机读取,适用于代码存储与原地执行(XiP);而NAND

weixin_33377602的博客 337

Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushM

当在修改用户操作的时候出现错误: 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. 原因是:只读模式...

蟹蟹肉的博客 3264

超声信号处理——硬件电路中的混频应用

本文介绍了超声多普勒系统的信号处理原理。系统通过波形振荡器产生高频信号,经换能器转换为超声波发射,接收反射信号后与原始信号混频,利用三角函数的积化和差特性产生包含多普勒频移的低频差频信号和高频和频信号。通过低通滤波器滤除高频成分后,即可获得纯净的多普勒信号。这种处理方法将MHz级高频信号转换为可听低频信号,降低了系统复杂度与成本。数学推导表明,差频信号频率正好

fcxgfdjy的博客 1122

spring整合问题分析之-Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Sessi...

1.异常分析 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. 大概意思就是:在只读模式(Flush...

weixin_30765319的博客 1369

Maxwell个人初学经验及资料分享

前段时间学习了课题组基于Maxwell所建立的模型,因为以前从来没有使用过,只是按照一步一步记忆了操作,但总觉得不熟悉,我想是缺乏对这个软件整体的了解,真正想上手只会这一个模型也没有办法扩展。但是我感觉这些有限元分析软件学习起来应该有一些共性,基于以前对COMSOL学习的一点经验,我就在官网和其他网站找了一些学习资源构成一条基础入门之路,也可能有更好的资源,仅代表个人观点做一下分享。以上就是本人对该软件初步学习的一点理解,跟着这样的操作不到一个星期就能初步的掌握。...

怎么又是萝卜的博客 5630

PySpark机器学习生产化陷阱:跨节点依赖问题的7种解决方案

隐式依赖陷阱使用ldd解决方案:在基础镜像中预装和路径冲突终极解法依赖树瘦身技巧用conda-tree可减少40%环境体积PySpark机器学习生产化的核心矛盾在于分布式环境的确定性与灵活性不可兼得。轻量级方案(1-3)牺牲一致性换取灵活性重量级方案(4-6)牺牲灵活性换取确定性混合方案(7)针对特殊场景补充正如某AI平台架构师所言:“环境一致性不是技术问题,而是工程纪律问题选择适合团队当前阶段的方案,建立严格的依赖管理流程,才能让PySpark真正扛起生产环境的大旗。

datacanvas2426的博客 907

Hibernate - Write operations are not allowed in read-only mode 报错解决方案

该错误通常在使用OpenSessionInViewFilter并在Spring管理的事务之外进行持久化操作时发生。建议将方法加上@Transactional注解,以启用事务管理。

u012690117的博客 1262

华为OD机试 - 单词倒序(Python/JS/C/C++ 2025 A卷 100分)

华为OD机试 2025A卷题库疯狂收录中,刷题。

学Java,找哪吒 1226

spring MVC中 Write operations are not allowed in read-only mode (FlushMode.MANUAL)解决办法

Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关闭,这些导致延迟加载数...

weixin_34228387的博客 125

【制作100个unity游戏之22】3DRPG游戏开发07——其他详细的设计

我们会有有很多单例,如果每个单例都去写会很麻烦,所以我们定义泛型单例模式 Singleton,我们将所有的单例都继承这个泛型单例,就省略很多重复的工作定义一个GameManager类,继承Singleton,控制整个游戏的进度,比如如果主角死了,广播,游戏结束调用。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2576

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息以及一些相关问题

天赐好车的博客 2883

错误:Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL)

这几天,碰到个错误: org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or rem

吴静的blog 1万+

华为校招实习机试&华为社招机试20240619-2.排列组合的回文字符串[200分]( Java | Python3 | C++ | C语言 | JsNode | Go)实现100%通过率

如果一个字符串和它反转后的字符串相同,我们称这个字符串为回文字符串,如"aba"是一个回文字符串,"abb"不是一个回文字符串(长度为1的字符串也是回文字符串)。现给定一个字符串,其长度范围为:[1,1000),返回其通过重新排列组合后所有可能的回文字符串的个数(需要去除重复的组合)。返回其通过重新排列组合后所有可能的回文字符串的个数,去除重复的组合后的回文字符串是"abba","baab",因此返回2。解释:排列组合后的回文字符串是"abba" , "baab",因此结果为2。

算法算法算法!!! 829

Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL)

在使用Spring+Hibernate或Spring+Hibernate+Struts进行增删改时会提示: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL) 分析原因如下: 在使用Spring+Hibernate或Spring+Hibernate+Struts的时候,会开启OpenSessi

JavaQ 3050

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Code Recyclebin Contact me QQ:149906878 Write operations are not allowed in read-only mode (FlushMo

方法一: 遇到这个情况,我猜: 1、你一定使用的spring+hibernate 2、你一定在applicationContext.xml文件中写了事务配置如下: Xml代码       tx:advice id="txAdvice" transaction-manager="transactionManager">          tx:attributes>

pingpinggaga的博客 669

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【SSH爬坑】Write operations are not allowed in read-only mode (FlushMode.MANUAL)

先说解决方法: 只需要在 SSH 项目的 Service 层加上 org.springframework.transaction.annotation.Transactional 包下的注解: @Transactional 问题就解决了 问题描述 ssh 项目操作数据库报错: Struts Problem Report Struts has detected an unhandled exception: Messages: Write operations are not allowed

CalledJoker的博客 1568

Write operations are not allowed in read-only mode (FlushMode.MANUAL):

转载自:http://blog.csdn.net/cpf929/article/details/18800147

0≡(-∞,+∞) 897

InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MA

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' mar...

EiletXie的博客 2347

解决Spring4+Hibernate4遇到的 Write operations are not allowed in read-only mode (FlushMode.MANUAL)

全部的错误stack类似: org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove

sozdream的专栏 6814

错误:Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL)..

使用Spring提供的Open Session In View而引起Write operations are not allowed in read-only mode (FlushMode.NEVER) 错误解决:        在没有使用Spring提供的Open Session In View情况下,因需要在service(or Dao)层里把session关闭,所以lazy loadin

yo^U^ng 9909

Write operations are not allowed in read-only mode (FlushMode.MANUAL) 错误解决

错误信息:org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL):  Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnl...

qq_23124557的博客 1429

(详解)Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session

昨天发现以前正常的功能报错了,错误日志如下: 报错日志: Hibernate: select taxtypecon0_.ID as ID62_, taxtypecon0_.TAX_TYPE_NAME as TAX2_62_, taxtypecon0_.EXPRESSIONS as EXPRESSI3_62_, taxtypecon0_.CREATE_DATE as CREATE4_62_,

YuZongTao 1万+

SSH整合报错:Write operations are not allowed in read-only mode (FlushMode.MANUAL)

初学SSH,开发示例发现报错:Write operations are not allowed in read-only mode (FlushMode.MANUAL),看报错信息大概知道是HibernateTemplate.save保存数据时无写的权限,在网上查了很多,试了几个方法都得不通,最终发现,需要同时修改ApplicationContext.xml和web.xml两个文件,问题解决。we...

yizongling的博客 578
上一篇: 为什么我的SVN服务器只能通过Https协议进行访问?
下一篇: getHibernateTemplate 修改和删除操作失败的解决办法
TechBro华仔
TechBro华仔 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄11年 5万+粉丝 430原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TechBro华仔

日拱一卒无有尽,功不唐捐终入海

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值