Set Hibernate session's flush mode in Spring
- by glaz666
I am writing integration tests and in one test method I'd like to write some data to DB and then read it.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
@TransactionConfiguration()
@Transactional
public class SimpleIntegrationTest {
@Resource
private DummyDAO dummyDAO;
/**
* Tries to store {@link com.example.server.entity.DummyEntity}.
*/
@Test
public void testPersistTestEntity() {
int countBefore = dummyDAO.findAll().size();
DummyEntity dummyEntity = new DummyEntity();
dummyDAO.makePersistent(dummyEntity);
//HERE SHOULD COME SESSION.FLUSH()
int countAfter = dummyDAO.findAll().size();
assertEquals(countBefore + 1, countAfter);
}
}
As you can see between storing and reading data, the session should be flushed because the default FushMode is AUTO thus no data can be actually stored in DB.
Question: Can I some how set FlushMode to ALWAYS in session factory or somewhere else to avoid repeating session.flush() call?
All DB calls in DAO goes with HibernateTemplate instance.
Thanks in advance.