我使用注释来标记应该在事务中执行的方法。
但是,在一个地方我需要手动执行 transactionManager.rollback()
,没有注释。如何获取transactionManager
对象?
最佳答案
如果你想回滚当前事务,你可以使用
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
请注意,它不会立即回滚事务 - 它会设置“仅回滚”状态,因此事务将在尝试提交期间回滚。
否则,如果您需要程序化事务划分,您可以使用
TransactionTemplate
,如 10.6 Programmatic transaction management 中所述。 .
您还可以获取 PlatformTransactionManager
的实例,但它没有被广泛使用,因为 TransactionTemplate
是程序化事务分离的推荐方法。
另请参阅:
关于java - 如何获取Spring事务管理器实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4123355/