Spring - 如何在事务方法中获取对 TransactionStatus 对象的引用
Spring - How to get reference to TransactionStatus object in a Transactional method
在服务层中使用 @Transactional
时,是否有任何选项可以获取对 PlatformTransactionManager
创建的 TransactionStatus
实例的引用?
例如,在下面的代码中:
@Transactional
public void updateCustomer(...) {
// do some business stuff
// can we get here a reference to the TransactionStatus instance ?
}
TransactionStatus status = TransactionAspectSupport.currentTransactionStatus();
currentTransactionStatus
方法returns当前方法调用的事务状态。
如果您对交易结果感兴趣,可以考虑TransactionSynchronizationAdapter
which provides a convenient afterCompletion(int status)
回调:
class AfterCompletionTransactionHandler
extends TransactionSynchronizationAdapter {
public @Override void afterCompletion(int status) { ... }
}
在服务层中使用 @Transactional
时,是否有任何选项可以获取对 PlatformTransactionManager
创建的 TransactionStatus
实例的引用?
例如,在下面的代码中:
@Transactional
public void updateCustomer(...) {
// do some business stuff
// can we get here a reference to the TransactionStatus instance ?
}
TransactionStatus status = TransactionAspectSupport.currentTransactionStatus();
currentTransactionStatus
方法returns当前方法调用的事务状态。
如果您对交易结果感兴趣,可以考虑TransactionSynchronizationAdapter
which provides a convenient afterCompletion(int status)
回调:
class AfterCompletionTransactionHandler
extends TransactionSynchronizationAdapter {
public @Override void afterCompletion(int status) { ... }
}