java.lang.IllegalArgumentException: Removing a detached instance
前提:将一张表的部分数据导入另一张表,且删除原来表中这部分数据。首先查询出来要导入的数据,然后for循环去插入新表中,且删除原来表中的数据;为了保证部分数据出错,只回滚部分数据,所以for循环一条一条导入和删除;查询和for循环没有用事务,只有导入和删除用了事务。
controller类
public void xxx(){获取到要删除的集合transitDatasfor (TransitData transitData : transitDataList) {BeanUtils.copyProperties(transitData,transitDataCopy);copyDataLogic.copyTransit(transitData,transitDataCopy);}
}
service类 ,如果在service类中查询要删除的集合transitDatas的话,下面这段代码的事务就用不上了,因为this调用不会进入切面。
@Transactional(readOnly = false,transactionManager = "transactionManager",rollbackFor = {Throwable.class})
public void copyTransit(){transitDataCopyDao.create(transitDataCopy);transitDataCopyDao.delete(transitData);
}
删除的时候报异常:
- java.lang.IllegalArgumentException: Removing a detached instance
原因:删除的时候是用这个对象来删除的,但是这个对象的创建是在事务外面的,也就是这个对象不在当前session中。所以报错。
java.lang.IllegalArgumentException: Removing a detached instance相关推荐
- Removing a detached instance
常用数据库表的删除办法,一般都会在DAO类中提供delete.如下例: public class UnitDAO implements IUnitDAO { private Entit ...
- java.lang.IllegalArgumentException: xxx
非法参数异常 IllegalArgumentException java.lang.IllegalArgumentException: Sheet index (1) is out of range ...
- java.lang.IllegalArgumentException: object is not an instance of declaring class 的解决办法
问题概述 在项目开发的工作中,需要对数据报表进行导入导出的操作,为了方便快捷,使用的了EasyPOI,EasyPOI就像其名称一样,让报表操作的更容易些,它主要对POI进行了再封装,不像以前使用POI ...
- java.lang.IllegalArgumentException: object is not an instance of declaring class
今天在使用反射的时候,出现了java.lang.IllegalArgumentException: object is not an instance of declaring class错误-具体是 ...
- java.lang.IllegalArgumentException异常
问题概述 在项目开发的工作中,需要对数据报表进行导入导出的操作,为了方便快捷,使用的了EasyPOI,EasyPOI就像其名称一样,让报表操作的更容易些,它主要对POI进行了再封装,不像以前使用POI ...
- 报错:The class java.lang.IllegalArgumentException may be caused by the wrapped ProcessingEnvironment
报错 使用IntelliJ IDEA社区版在本地启动某个sofa boot项目时报如下错误 java: java.lang.IllegalArgumentException java: The cla ...
- The class java.lang.IllegalArgumentException may be caused by the wrapped ProcessingEnvironment obje
idea2021.1.2启动的时候报错 java: java.lang.IllegalArgumentException java: The class java.lang.IllegalArgume ...
- ES启动报错:Caused by: java.lang.IllegalArgumentException: can‘t add node {es2}
错误一: [2022-04-01T19:49:21,583][INFO ][o.e.c.c.JoinHelper ] [es2] failed to join {es3}{CFmzQaz2Rru5Tk ...
- 处理Activity#onResume()遇到java.lang.IllegalArgumentException诡异异常
记录处理Android 较为诡异的问题,Activity#onResume()发生IllegalArgumentException 异常. 1.Activity#onResume()异常 最近在处理B ...
最新文章
- wireshark协议解析器 源码分析 封装调用
- python中的sys.argv是什么?(控制台参数传递、控制台传参)
- ASP.NET 2.0 - 选用DataSet或DataReader
- jenkins~集群分发功能和职责处理
- 网络编程常用接口的内核实现----sys_listen()
- python 定义变量_python-003-变量
- oracle 中查询当前用户可以看到的表名、表对应的所有字段
- Java伪代码之大道至简读后感
- stata导入数据问题
- HDU 2296 Ring -----------AC自动机,其实我想说的是怎么快速打印字典序最小的路径...
- 使用mptt在easyui中显示树形结构
- Json、String、JavaBean相互转换
- 计算机毕业设计论文题目分享
- 《MMD》制作极乐净土
- hi3519模组测试
- 【论文阅读】Attention-based Deep Multiple Instance Learning
- 一个成年自动驾驶公司的底气,都是“前装量产”给的
- html超链接本地文件为什么打不开,为什么word文件的本地超链接打不开呢
- JavaScript不清不楚之Array.isArray
- MyBatis 多对多关联映射