Альтернатива аннотации @Transactional

Какая альтернатива отката транзакции весной, кроме аннотации @Transactional. Я использовал эту аннотацию, но я хочу, чтобы я мог откатить транзакцию в блоке catch. Там в любом случае?

Спасибо заранее.

1 ответ

Решение

Вот черновик:

public class SomeService implements SomeInterface {

   private SomeDao thisDaoWrapsJdbcTemplate;
   private PlatformTransactionManager transactionManager;

   public void setTransactionManager( PlatformTransactionManager transactionManager ) {
      this.transactionManager = transactionManager;
   }

   public void doBusiness( Business: business ) {

      TransactionDefinition def = new DefaultTransactionDefinition();
      TransactionStatus status = transactionManager.getTransaction( def );

      try {

         // do business here
         Money money = Money.LOTS_OF
         ...
         // wire the money in..
         thisDaoWrapsJdbcTemplate.depositLotsOfMoney( money )

         transactionManager.commit( status );

      } catch ( DataAccessException dae ) {

         transactionManager.rollback( status );
         throw dae;
      }
      return;
   }
Другие вопросы по тегам