Transaction silently rolled back becaus e it has been marked as rol lback-only
时间: 2023-12-01 10:42:32 浏览: 71
当一个事务被标记为rollback-only时,它将被静默回滚,这意味着事务管理器不会抛出异常或错误消息,而是默默地回滚事务。这通常是由于在事务中发生了不可恢复的错误或异常,或者在事务中手动将事务标记为rollback-only。在Spring框架中,如果事务被标记为rollback-only,则会抛出UnexpectedRollbackException异常,表示事务已被回滚。
相关问题
Transaction s ilently rolled back becaus e it has been marked as rol lback-only
该错误通常是由于事务嵌套或事务传播方式不当导致的。解决方法如下:
1. 如果出现事务嵌套,可以尝试在代码块中使用try-catch语句,并在catch块中使用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()来手动回滚事务。
2. 如果使用了默认的事务传播方式propagation.REQUIRED,可以尝试将其修改为propagation.REQUIRES_NEW,这样内层事务异常时不会影响外层事务。
3. 确保不要在service层使用try-catch语句,而是应该在controller层进行异常处理,或者在service层抛出RuntimeException异常。
Transaction silently rolled back because it has been marked as rollback-only
"Transaction silently rolled back because it has been marked as rollback-only"这句话意思是事务以静默方式回滚,因为它被标记为仅回滚。这个错误通常在事务管理中出现,当事务被标记为仅回滚时,它将自动回滚并不会引发异常。这种情况可能发生在出现了意外错误或者其他异常情况时,事务管理器会将事务标记为仅回滚,以确保数据的一致性和完整性。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [解决org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back be...](https://blog.csdn.net/lvoelife/article/details/129165965)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文