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

Merge doesn't reflect in Derby database immediately

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

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();

正在调用方法并将值正确传递给数据库(我使用的是 Apache derby),但只有在断开连接并重新连接后,我才能在数据库中看到新更改的值。合并后我错过了一些步骤吗?我是 JPA 的新手,感谢任何有关相同的建议

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

你可以试试在em.merge()后面加一个em.flush() 它将执行缓存中剩余的所有请求。