0

我在我的类声明上方有这个声明。抛出 DAOException 时只会回滚吗?

@Transactional(rollbackFor = { ManagerException.class, DAOException.class }) 

如果是这种情况,我怎样才能在不引发异常的情况下回滚错误的提交。目前我的数据库包函数返回一条错误消息,我想回滚并仍然向用户显示错误消息,而不会引发异常并使应用程序崩溃。

4

1 回答 1

2

文档说:

您还可以以编程方式指示所需的回滚。虽然非常简单,但这个过程非常具有侵入性,并且将您的代码与 Spring 框架的事务基础设施紧密耦合:

public void resolvePosition() {
    try {
        // some business logic...
    } catch (NoProductInStockException ex) {
        // trigger rollback programmatically
        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
    }
}
于 2013-10-23T11:41:42.353 回答