调用方法中正在处理的异常是否休眠回滚事务?

Does hibernate rollback transaction for exception that is being handled in the caller method?

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

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

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

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

如果有人想知道如果调用方方法本身有事务注释会发生什么?它会抛出这个异常:

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

原因在此answer

中有解释