合并不会立即反映在Derby数据库中

时间:2015-08-03 11:22:06

标签: jpa merge derby

我有以下代码,我从前端调用

public Login update(Login i) {
    em = emf.createEntityManager();
    em.getTransaction().begin();
    Login result=infoDAO.update(i);
    em.getTransaction().commit();
    em.close();
    return result;
}

public Login update(Login i) {
    return em.merge(i);
}

我有

private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("HRTool-JPA");
protected EntityManager em=emf.createEntityManager();

正在调用这些方法并且值正确地传递给DB(我正在使用Apache derby)但是只有在断开连接并重新连接到DB之后,我才能在数据库中看到新的更改值。合并后我错过了一些步骤吗?我是JPA的新手并且对同一个

的任何建议表示感谢

1 个答案:

答案 0 :(得分:2)

默认情况下,Hibernate将请求保留在其缓存中,Hibernate决定何时执行它们。

您可以尝试在em.merge()之后添加em.flush() 它将执行缓存中剩余的所有请求。