异常:InvalidDataAccessApiUsageException:Write operations are not allowed in read-only mode

org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

这几天,碰到个错误.在网上查询,大多是改动配置文件,而公司的项目,配置文件是不能随便修改,况且,我这个保存功能原本是好使的,在我不知道改了什么的情况下报错了,原本以为是修改的数据配置文件有问题,但是核对了几遍都没问题,最后找很牛的同事看看,他恍然大悟,唉,原来这样。。

下面是导致这个异常的我的原因:
虽然目前还是不太清楚整个流程,但是如果在交给spring 管理的情况下,有一个事务处理配置文件,xxx.xml,如下:

红色圈上的地方定义了,你方法名的限制。如果你以这些名字,如load,find,get,list,fetch开头命名你的方法的话,那么你这个方法的数据操作被定义为readonly的,在这些方法里做数据库的删除,添加,修改操作是不被允许的,会报出这个异常。
于是,我改了我的方法名,之前好使是因为我之前并不是以get开头的,因为修改一些东西,将方法名改成了get开头的方法名,好吧,报错不要紧,又知道了点东西,
修改方法名字之后,方法的添加功能就不再报错,成功的添加进数据了。
所以我们需要做的只是修改我们的方法名即可,并不一定要去修改配置文件,修改配置文件,尤其是已经成型的工程,可能会引发其他一系列我们尚不明了的问题。
所以当有问题出现的时候,我们首先要做的是从我们的代码中找问题,并修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值