JPA:EntityManager删除/更新

时间:2015-12-29 14:42:29

标签: jpa entitymanager

当我调用EntityManager的更新或删除方法时,我首先需要通过调用find()来管理实体。但这意味着双重访问数据库。我做错了还是唯一的方法?

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解正确。但如果你的意思是你必须做类似的事情 Employee employee = em.find(Employee.class, 1); em.getTransaction().begin(); em.remove(employee); em.getTransaction().commit();

然后是的,你必须这样做:)

答案 1 :(得分:0)

使用' EntityManager'的mergeremove方法你需要在参数中传递实体对象。

您还可以使用native queriesem.createNativeQuery),它可以让您执行任何所需的请求。

毕竟,JPA有一个缓存层,可以防止不必要的请求一直进入数据库。当您调用find(id)时,JPA将首先尝试从缓存中检索它(如果之后未进行修改)。

所以,不要担心