Spring integration test with manual transaction management
I finally managed to execute some code in a separate transaction.
You need
@Autowired
private PlatformTransactionManager platformTransactionManager;
private TransactionTemplate transactionTemplate;
in your test class. Then you can do the following:
this.transactionTemplate = new TransactionTemplate(this.platformTransactionManager);
// note that parameters passed to the transaction must be final!
final Object parameter = something;
Object returnedValue = this.transactionTemplate.execute(new TransactionCallback<Object>()
{
@Override
public Object doInTransaction(TransactionStatus status)
{
return doSomethingAndReturnAnObject(parameter);
}
}
);