JPA数据源Oracle异常记录
代码执行异常
ObjectOptimisticLockingFailureException
org.springframework.orm.ObjectOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
如果在其他事务已经删除之后,开始执行deleteById方法,这个会提示Id对应的数据不存在,和上面报错不一样
JPA通过Dao接口(JPA自带的接口,@Query的方式不会)修改/删除Entity对象,Entity对象数据库数据被删除(其他线程已删除)引起的异常,这里的后面如果执行查询,然后报错点就会在这里。(JPA的查询貌似会开启事务,应该会加入之前的事务)
NOTransactionException
org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus in scope
没有@Transaction注解修饰的方法调用了@Transaction方法,使用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();进行事务回滚,其他方法开启的事务会提交,但是会抛出异常。
InvalidDataAccessApiUsageException
org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query
方法调用PortReleaseStoreServiceImpl.savePortStore执行JPA删除/修改没有事务支持报错.。
JPA的dao接口update/delete SQL需要事务支持,否则就抛出上面的异常信息
必须要显示声明事务,或者调用它的Service有开启事务
JpaSystemException
could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.LockAcquisitionException: could not execute statement
org.springframework.orm.jpa.JpaSystemException: Transaction was marked for rollback only; cannot commit; nested exception is org.hibernate.TransactionException: Transaction was marked for rollback only; cannot commit
两个或多个进程(或事务)互相等待对方释放资源,导致它们无法继续执行下去的状态。
引发这个异常的原因有:
- 修改sql造成死锁
if(flag1){tableDao1.update();tableDao2.update();
}else{tableDao2.update();tableDao1.update();
}
2. A方法开启事务,在方法中通过dao执行数据库的写入操作,发生了异常,但是这个dao执行的方法异常被捕获了,导致了当前事务被标记回滚,A方法执行完成进行了事务的提交,所以出现了事务被标记rollback还提交事务的异常提示信息出现。dao层级引发的异常,就算异常被捕获,事务还是会被标记回滚。
UnexpectedRollbackException
一个Service开启了事务,调用另一个开始事务,事务隔离级别为Propagation.REQUIRED,默认加入之前的事务,后执行的事务使用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();回滚事务,原来的Service在方法执行之后,不知道事务被设置为回滚,还需要提交事务,此时事务已经被回滚,会有异常提示。(事务被标记回滚,可是还是尝试去提交事务)
SQLSyntaxErrorException
使用SEQ自增主键,指定数据库方言错误。
Oracle错误代码
ORA-01756
ORA-01756: quoted string not properly terminated
引号字符串没有正确结束
String类型’ 为成对
ORA-00936
ORA-00936: missing expression
sql语法错误,缺失必要表达式 select 缺少列,或者oracle数据库in查询没有列值。
ORA-01461
ORA-01461: can bind a LONG value only for insert into a LONG column
表中VARCHAR2(100)字段插入超过100字符串
ORA-00060 || SQLState:40001
获取排他锁:在默认的 READ COMMITTED 隔离级别下,当一个事务修改数据时,它会获取排他锁,这会阻止其他事务同时修改相同的数据。同时,其他事务可以在没有阻塞的情况下读取相同的数据,因为读取操作通常获取共享锁。
if(flag1){tableDao1.update();tableDao2.update();
}else{tableDao2.update();tableDao1.update();
}
ORA-02201
使用MySQL的数据库方言,在这里不支持。
相关文章:

JPA数据源Oracle异常记录
代码执行异常 ObjectOptimisticLockingFailureException org.springframework.orm.ObjectOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleSta…...
抽奖送平板是骗局!!!
在街上被派传单,然后扫了码抽奖中了平板,被领到卖电器门店兑奖。他们给我在宜嘉商城上充值4980,我现场给他们付了4980元,签了他们的业务办理单,上面有违约者赔款30%违约金字样。我领走了荣耀畅玩40plus手机一台。第二天…...
json.decoder.JSONDecodeError: Extra data: line 1 column 332 (char 331)
项目场景: 提示:扩充数据集时,同步修改json标签中的"imagePath"字段的值,出现json文件读写不一致问题。 采用open函数读写模式修改json文件字段。open(jsonF.json, r)。 问题描述 运行修改json文件报错:j…...

rust持续学习 COW
COW我第一次看见还以为是奶牛 很奇怪是个啥 后来了解到是clone on write 缩写的,大乌龙啊 这个有两种enum,一种是borrow,一种是own rust中,数据读写经常涉及到所有权 这个borrow,很显然,就是不可变借用了 own就是可以写…...

【计算机网络】14、DHCP
文章目录 一、概述1.1 好处 二、概念2.1 分配 IP2.2 控制租赁时间2.3 DHCP 的其他网络功能2.4 IP地址范围和用户类别2.5 安全 三、DHCP 消息3.1 DHCP discover message3.2 DHCP offers a message 如果没有 DHCP,IT管理者必须手动选出可用的 ip,这太耗时了…...

【FPGA】Verilog:计数器 | 异步计数器 | 同步计数器 | 2位二进制计数器的实现 | 4位十进制计数器的实现
目录 Ⅰ. 实践说明 0x00 计数器(Counter) 0x01 异步计数器(Asynchronous Counter)...
IDEA常用快捷键
快捷键功能tab接受选择–选择的名称将覆盖带插入符号右侧的其它名称–而如果按shift或者enter,光标右边的内容会保留Ctrlshift空格智能匹配–查找当前上下文的方法和变量Ctrld对比文件–选中需要对比的文件shift滚动水平滚动Ctrlaltl格式化Ctrlk提交Ctrlaltz回滚类C…...
【2024秋招】2023-10-17 金山云文档服务端二面
1 实习 1.1 讲解一下curd启动器 1.2 数据同步的过程是怎么实现的,同步过程中的数据一致性怎么保证的 答:同步过程中会记录断点,表示每一批同步成功时的位置,如果对端出现问题,则下一次同步会继续从这个断点后开始同…...

一种excel多线程并发写sheet的方案
一、背景 有一次项目的需求要求导出excel,并且将不同的数据分别写到不同的sheet中。 二、 方案概述 首先一开始使用easyexcel去导出excel,结果发现导出时间需要3秒左右。于是想着能不能缩短excel导出时间,于是第一次尝试使用异步线程去查询数…...

深入了解接口测试:揭秘网络分层和数据处理!
网络分层和数据 上一小节中介绍了接口测试中一些必要重要的定义,这一节我们来讨论一下在学习接口测试过程中我们要关注的最重要的东西:网络分层和数据。 首先,我们来尝试理解一下,为什么网络是要分层的呢? 我们可以…...
Java并发编程
进程和线程 进程即程序的一次执行过程,各个进程之间是独立的。线程是更小的单位,一次进程中,可能会有多个线程,可能会相互影响,各个线程有自己的程序计数器,虚拟机栈和本地方法栈,同时共同使用…...

vue+echarts实现依赖关系无向网络拓扑结图节点折叠展开策略
目录 引言 一、设计 1. 树状图(不方便呈现节点之间的关系,次要考虑) 2. 力引导依赖关系图 二、力引导关系图 三、如何实现节点的Open Or Fold 1. 设计逻辑 节点展开细节 节点收缩细节 代码实现 四、结果呈现 五、完整代码 引言 我…...

Unity3d 灯光阴影开启,法线贴图出现BUG
URP项目打开灯光的阴影后,法线贴图出现BUG 解决方案:按照下图所示调整材质的选项即可...

c语言:模拟实现atoi函数
atoi函数的功能和用法: 主要功能:将字符串转换为整数。例如,将字符类型的“123”转换为整数123. #include <stdio.h> #include <stdlib.h>int main() {char str[] "123";int num atoi(str);printf("Converted …...

Docker 使用心得
创建一个docker 镜像,相关运行代码,放在docker镜像文件同级, pm2 不能与 docker一起使用() # node 服务docker FROM node:10.16.3LABEL author"sj"RUN mkdir -p /var/nodeCOPY ./node /var/nodeWORKDIR /va…...

Nacos 架构原理
基本架构及概念 服务 (Service) 服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客户端可以为不同的目的重用(例如通过跨进程的网络调用)。Nacos 支持主流的服务生态,…...
尝试修改vim光标的思路
尝试修改vim光标,失败 想让vim的光标在不同模式下显示不同样式 尝试了很多方法,但是没有作用 " Set cursor shape and color if &term ~ "xterm"" INSERT modelet &t_SI "\<Esc>[6 q" . "\<Esc&…...

SpringBoot整合Activiti7——消息事件(十)
文章目录 消息事件开始事件中间事件边界事件代码实现xml文件测试流程流程执行步骤 消息事件 消息事件只有一个接收者,消息具有名字与载荷。 信息会储存在 act_ru_event_subscr 表中。 <!-- 定义消息 --> <message id"msgId1" name"msgName…...
高翔:《自动驾驶与机器人中的SLAM技术 》-Slam_in_autonomous_driving 编译过程中遇到的问题
使用的环境是ubuntu20.04 问题1.安装g2o没有问题,不过在编译整个项目工程时候报错: ”openmp_mutex.h: 30:10: fatal error: g2o/config.h: No such file or directory“: 解决办法: 只需要将/thirdparty/g2o/build/g2o下的config.h放到/…...
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder 实现密码加密 验证 代码示例
BCryptPasswordEncoder 是 Spring Security 提供的用于加密和验证密码的实现类。它使用强大的 BCrypt 散列函数来存储密码的散列值,提供了一种安全的密码存储方法。以下是一个简单的示例代码,演示如何使用 BCryptPasswordEncoder 进行密码加密和验证&…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门  {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...