2016-12-24 2 views
1

При использовании @Transactional на уровне обслуживания есть ли какой-либо параметр для получения ссылки на экземпляр TransactionStatus, созданный PlatformTransactionManager?Spring - Как получить ссылку на объект TransactionStatus в транзакционном методе

Например, в следующем коде:

@Transactional 
public void updateCustomer(...) { 
    // do some business stuff 
    // can we get here a reference to the TransactionStatus instance ? 
} 
+0

Что вам нужно? Я пишу транзакционный весенний код в течение многих лет без необходимости вручную устанавливать или запрашивать TransactionStatus ... – meriton

ответ

4
TransactionStatus status = TransactionAspectSupport.currentTransactionStatus(); 

currentTransactionStatus метод возвращает состояние транзакции текущего вызова метода.

Если вы заинтересованы в результате сделки, вы могли бы рассмотреть TransactionSynchronizationAdapter, который обеспечивает удобный afterCompletion(int status) обратного вызова:

class AfterCompletionTransactionHandler 
     extends TransactionSynchronizationAdapter { 

    public @Override void afterCompletion(int status) { ... } 

} 
Смежные вопросы