合并不会立即反映在 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()
它将执行缓存中剩余的所有请求。
我有以下从前端调用的代码
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() 它将执行缓存中剩余的所有请求。