Spring @Transactional does not work in JUnit test?

hibernate, junit4, spring, spring-test, transactional

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.

Problem

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?

Original source