私は統合テストを書いていますが、あるテスト方法では、DB にデータを書き込んでから読みたいと思っています。
@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);
}
}
データの保存と読み取りの間でわかるように、デフォルトFushMode
ではAUTO
DB に実際にデータを保存できないため、セッションをフラッシュする必要があります。
質問:呼び出しの繰り返しを避けるためFlushMode
にALWAYS
、セッション ファクトリまたは他の場所にどのように設定できますか?session.flush()
DAO のすべての DB 呼び出しは、HibernateTemplate
インスタンスを使用します。
前もって感謝します。