Spring回滚事务部分

Spring rollback transaction part

我配置了 spring 和休眠事务(在每个服务调用上执行 aop 并为 Throwable 回滚)。我需要支持 cretePartA() 的以下要求:

在上面的示例中,即使尝试捕获 cretePartA() 的包装,整个 cteateSmth() 事务也将回滚。

我用 REQUIRES_NEW 尝试过,但在这种情况下我似乎无法回滚 cretePartA() 操作。

TransactionDefinition transactionDefinition = new DefaultTransactionAttribute(TransactionDefinition.Propagation.REQUIRES_NEW);
new TransactionTemplate(transactionManager, transactionDefinition).execute(new TransactionCallback()
{
    @Override
    public Object doInTransaction(TransactionStatus status)
    {
        try{
           cretePartA()
        } catch (Exception e){

        }
        return null;
    }
});

我试图不为 cretePartA() 创建新事务,只是排除了来自 spring aop 的此服务调用。但在这种情况下,结果将提交给 cretePartA()。

我用注解解决了@Transactional(propagation = Propagation.REQUIRES_NEW) 对于 cretePartA() 方法和 try/catch 块