调用方法中正在处理的异常是否休眠回滚事务?
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
中有解释
我知道如果其中发生任何异常,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
中有解释