Search code examples
springhibernatejunit4spring-testtransactional

Spring @Transactional does not work in JUnit test?


I am using Spring 3.2, Hibernate and JUnit 4.

My Dao class is as follows:

@Transactional public class SomeDaoImpl implements SomeDao {

The update operations on this work if executed directly from web application. However, I am seeing that junit integration tests that exercise the update methods do not actually persist the changes. Is something rolling the transactions back when junit methods are executed?


Solution

  • By reference, transactions are not persisted in test contexts in Spring. As mentioned, although unusual, if you still need to do so you can use @TransactionConfiguration and @Rollback to change the default behavior.