Connection is read-only @Transactional(readOnly = false)不管用

今天改代码遇到一个问题,项目是老项目,这个功能又是新加上的。上一个人写业务直接在控制层写的。但是现在到我接手,刚好最近客户在用出现了问题。修改数据的时候数据乱了。以前这个功能是没有事务的,我一看就觉得这真是离了个大谱。因为这方法修改很多次表,插入表之后又有不能重复的限制,这不是妥妥的坑吗。于是我直接重写这个方法。

我加了一个service层,想在这里添加事务,当我写完代码测试时,就遇到了这个问题。修改数据库报Connection is read-only. Queries leading to data modification are not allowed的异常。网上都说是因为事务设置了@Transactional(readOnly = true)的原因,改成false 就可以。但是我寻思着我也没有写readOnly = true,而且即使手动加上等于false还是不行。我就非常奇怪。一直找原因。然后我问了公司同事,他发现在ApplicationContext.xml 的配置文件中有一个这样的配置

离谱,这是匹配service层方法名的配置,方法名符合这些前缀的都应用这个配置。我的方法名走的是*的配置,导致我一直修改都是报Connection is read-only错误。最后我改了一下我的方法名,终于是成功修改了数据。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值