手动管理的hibernate在退出时不会写入更改

时间:2018-03-09 12:18:33

标签: hibernate

我有一个小程序通过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可以将更改写入实际的数据库文件。 是否还有一些额外的刷新,或者我可以调用一些阻塞函数,直到所有的更改都被写入?

0 个答案:

没有答案