问题场景:

项目场景:项目使用JPA,业务需要查询某条数据,根据数据内容返回信息判断是否更新表数据。

报错信息:Connection is read-only. Queries leading to data modification are not allowed


原因分析:


查询数据时调用了JPA实现的查询接口,本身使用的实现层未重写该接口,该接口创建只读连接。

知识总结

Spring Data 提供了默认的事务处理方式,即所有的查询均声明为只读事务。确保了单个请求过程数据的一致性。
对于自定义的方法,如需改变 SpringData 提供的事务默认方式,可以在方法上注解@Transactional声明进行多个Repository操作时,也应该使它们在同一个事务中处理,按照分层架构的思想,这部分属于业务逻辑层,因此,需要在Service层实现对多个 Repository的调用,并在相应的方法上声明事务。
Repository概念:按照最初提出者的介绍,它是衔接数据映射层和域之间的一个纽带,作用相当于一个在内存中的域对象集合。客户端对象把查询的一些实体进行组合,并把它们提交给Repository。对象能够从Repository中移除或者添加,就好比这些对象在一个Collection对象上就行数据操作,同时映射层的代码会对应的从数据库中取出相应的数据。
从概念上讲,Repository是把一个数据存储区的数据给封装成对象的集合并提供了对这些集合的操作。广义上可以理解为我们常说的DAO。


解决方案:

不使用jpa自有的查询接口,使用自己创建的查询接口。
问题解决,查询完成后,再去update表数据成功。



可根据需求增加 @Transactional注解,该注解提供了事务,具体用法自行百度。

JPA使用报错:Connection is read-only. Queries leading to data modification are not allowed相关推荐

  1. 执行update操作的话,就会报“Connection is read-only. Queries leading to data modification are not allowed”的异常。

    执行update操作的话,就会报"Connection is read-only. Queries leading to data modification are not allowed& ...

  2. java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed

    1.本问题出现在动力节点crm项目中的p85-p88 2.出现问题时applicationContext-datasource的配置 3.报出的异常(里面有只读异常,还有就是sql中接收的id是?) ...

  3. git使用报错:fatal: Couldn't find remote ref master的解决方法

    git使用报错:fatal: Couldn't find remote ref master的解决方法 fatal: Couldn't find remote ref master 翻译过来就是:致命 ...

  4. 记录webpack使用问题,使用报错“UnhandledPromiseRejectionWarning,file-loader图片过大,无法加载图片,打包html文件报错TypeError

    记录webpack使用报错 版本号问题 运行npm run build,报错 "UnhandledPromiseRejectionWarning: TypeError: this.getRe ...

  5. Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案

    Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案 参考文章: (1)Assets.car 解压工具 cartool 使用报错 s ...

  6. “this”不能在常量表达式中使用报错的解决方法

    "this"不能在常量表达式中使用报错的解决方法 问题描述与思考 在用C++书写下面一段代码时,编译器报错"'this'不能在常量表达式中使用".在这里,我最开 ...

  7. CentOS系统yum源使用报错:Error: Cannot retrieve repository metadata

    服务器上的yum突然不好使用,使用yum的时候报错如下: [root@bastion-IDC src]# yum list ...... Could not retrieve mirrorlist h ...

  8. Python安装xlrd和xlwt的步骤以及使用报错的解决方法

    Python安装xlrd和xlwt的步骤以及使用报错的解决方法 参考文章: (1)Python安装xlrd和xlwt的步骤以及使用报错的解决方法 (2)https://www.cnblogs.com/ ...

  9. git使用报错: fatal: Couldn‘t find remote ref master的解决方法

    git使用报错: fatal: Couldn't find remote ref master的解决方法 参考文章: (1)git使用报错: fatal: Couldn't find remote r ...

最新文章

  1. 清华大学《大数据系统基础》项目征集说明(2021年秋季)
  2. 从命令行传递其他变量来制作
  3. Interview QA - 房间里有三盏灯,屋里有三个开关分别控制这三盏灯。如何只进入房间一次就知道哪一个开关控制哪一盏灯?
  4. 将枚举类型的数据绑定到控件
  5. 【PAT甲级 进位相加】1058 A+B in Hogwarts (20 分) C 全部AC
  6. 系统间数据交互注意项
  7. [转]Displaying standard DataTables in MVC
  8. oracle数据库看开销,【Database】AIX系统下跟踪开销大的Oracle数据库进程
  9. Cisco自反控制列表的应用
  10. 去中心化保险协议InsurAce完成100万美元种子轮融资,DeFiance Capital领投
  11. iOS开发学习笔记二:UITableView(1)
  12. JAVA几何图注水,Java学习:使用Graphics2D类画的简易土星图案
  13. html js css 简明教程,Web前端开发简明教程(HTML+CSS+JavaScript+jQuery)
  14. [强网杯 2019]随便注 —— 堆叠注入
  15. 一姐们知道她老公外面有小三后,不但没哭没闹,反而对她老公特别好
  16. 电脑文件里哪里能用计算机,如何搜索电脑文件和文件夹
  17. 内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具
  18. python中不等于号_python的不等于号是什么
  19. 后补贴时代的内容平台之战
  20. 请结合在播影视剧,对比一下腾讯、优酷和爱奇艺三家在付费内容推广策略上的差异。

热门文章

  1. IP地址通信简单理解
  2. [附源码]计算机毕业设计Python+uniapp基于微信小程序平台开发的音乐播放器f0rrr(程序+lw+远程部署)
  3. 基于java的医院预约挂号系统,基于JAVA的社区医院挂号系统.doc
  4. 系统重装 使用驱动精灵备份还原驱动教程
  5. 2.保安队的日子(上) 我当程序员的那些事1
  6. 周景世荣慢生活馆+重组自己的7个方法思维导图模板
  7. css实现下雪效果 (快圣诞啦)
  8. 欧姆定律被提出的曲折历程
  9. eclipse学习(第三章:ssh中的Hibernate)——7.Hibernate使用注释开发
  10. 树莓派 安装 gogs