Hibernate flush()是同步还是异步?

时间:2016-09-09 09:01:27

标签: java hibernate asynchronous flush

我正在进行一些测试,其中冲洗和清除不会立即显示。等待Hibernate使flush能够解决问题。这是否意味着flush是异步的?有没有关于它的官方Hibernate文档?

这失败了:

@Test
public void doTest()
   Entity oldData = myDAO.load(1L);
   oldData.setField("foo");

   myDAO.update( oldData);     
   flushAndClear();

   oldData= myDAO.load(oldData.getId()); // Reload
   assertThat(oldData.getField() , notNullValue());
}

但这有效:

@Test
public void doTest()
   Entity oldData = myDAO.load(1L);
   oldData.setField("foo");

   myDAO.update( oldData);      
   flushAndClear();

   Thread.sleep(1000);  /** WAITING SOME TIME*/
   oldData= myDAO.load(oldData.getId()); // Reload
   assertThat(oldData.getField() , notNullValue());    
}

flushAndClear只是:

getCurrentSession().flush();
getCurrentSession().clear();

0 个答案:

没有答案