有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是否为调用方方法中正在处理的异常执行hibernate回滚事务?

我知道,如果@Transactional注释方法中发生异常,hibernate将回滚该方法中所做的所有更改

我还知道,如果我们使用try-catch处理异常,那么hibernate将不会执行事务回滚操作

我的问题是,如果我使用调用方方法(调用带有@Transactional注释的数据库更新操作方法的方法)的try catch处理异常,hibernate会执行事务回滚吗


共 (1) 个答案

  1. # 1 楼答案

    我自己测试后发现,即使处理调用方方法的异常,事务也会回滚

    如果有人想知道如果调用方方法本身包含事务性注释会发生什么情况?它将抛出此异常:

    org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only
    

    其原因在本answer中解释