2010-11-08 57 views
3

我使用注释来标记应该在事务中执行的方法。如何获取Spring事务管理器实例?

但是,在一个地方,我需要手动做transactionManager.rollback(),没有注释。我如何获得transactionManager对象?

回答

8

如果要回滚当前事务,你可以使用

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 

注意,它不会立即回滚事务 - 它设置了“仅回滚”状态,这样的交易将在回滚尝试提交。否则,如果您需要编程式交易demaracation,则可以使用TransactionTemplate,如10.6 Programmatic transaction management中所述。

此外,您可以获得PlatformTransactionManager的实例,但由于TransactionTemplate是编程式事务拒绝的推荐方法,因此未得到广泛使用。

参见:

0

如果你的对象是Spring配置,你可以关闭过程中注入一个事务管理器进去......