我有一个小程序通过hibernate持久化对象:
public static void main(String[] args) throws Exception{
System.out.println("starting");
EntityManager em = CustomEntityManager.getEntityManagerFactory().createEntityManager();
em.getTransaction().begin();
try {
Thing thing = new Thing();
thing.setName("huhu");
thing.setUuid(UUID.randomUUID().toString());
em.persist(thing);
em.flush();
em.getTransaction().commit();
}catch(Exception ex){
System.err.println(ex.getLocalizedMessage());
}
em.close();
}
当我在程序结束时添加sleep(1000)时,Thing
会被持久化。如果没有,似乎程序退出之前,hibernate可以将更改写入实际的数据库文件。
是否还有一些额外的刷新,或者我可以调用一些阻塞函数,直到所有的更改都被写入?