标题:
Transaction silently rolled back because it has been marked as rollback-only
[打印本页]
作者:
xiexie
时间:
2024-1-22 14:51
标题:
Transaction silently rolled back because it has been marked as rollback-only
出现这个错误的原因是事务双重回滚了。
模块间的相互调用时,被调用的模块有事务提交,在报错之后事务回滚,返回错误信息,
调用模块收到被调用模块的错误信息再一次进行事务回滚。
解决方法:在调用模块方法上挂起事务,不回滚事务
@Transactional(propagation = Propagation.NOT_SUPPORTED )
查询数据后对entity进行修改,数据库对应字段会自动更新。
解决方法如下:
20201124093217772.png
(53.92 KB)
2024-1-22 14:56
使用BeanUtils
new一个新实体,将查询出来的实体复制给新实体,修改之后返回新实体对象。
BeanUtils.copyProperties(entity,newEntity);
使用@Transactional注解
在Dao层对应方法使用该注解,表示以非事务方式执行操作,如果当前存在事务,就把当前事务挂起(只查询)。
@Transactional(propagation=Propagation.NOT_SUPPORTED)
dda83c0c32fd4384b4b635902c6d8ae5.png
(42.63 KB)
2024-1-22 14:57
[
本帖最后由 xiexie 于 2024-1-22 14:58 编辑
]
图片附件:
20201124093217772.png
(2024-1-22 14:56, 53.92 KB) / 该附件被下载次数 476
http://phpvi.com/attachment.php?aid=280&k=cdb0f7fcad800ab31b5847f18bdc90a1&t=1732653126
图片附件:
dda83c0c32fd4384b4b635902c6d8ae5.png
(2024-1-22 14:57, 42.63 KB) / 该附件被下载次数 456
http://phpvi.com/attachment.php?aid=281&k=dfc501d8055a901d9e5586bae8831d31&t=1732653126
欢迎光临 PHP开发笔记 (http://phpvi.com/)
Powered by Discuz! 6.1.0