EntityManager.flush有什么作用,为什么我需要使用它?

我有一个将对象保存到数据库的EJB。在我看到的一个示例中,一旦保存了此数据(EntityManager.persist),就会调用EntityManager.flush();。为什么我需要这样做?我要保存的对象未附加,以后在该方法中也不会使用。实际上,一旦保存,该方法就会返回,并且我希望资源会被释放。(示例代码也在remove调用上执行此操作。)

if (somecondition) {

entityManager.persist(unAttachedEntity);

} else {

attachedEntityObject.setId(unAttachedEntity.getId());

}

entityManager.flush();

回答:

调用EntityManager.flush();将强制数据立即被持久保存,而EntityManager.persist()不是不保存(取决于EntityManager的配置方式:FlushModeType(AUTO或COMMIT)),默认情况下将其设置为AUTO,并且如果设置为Flush,将自动进行刷新。提交事务时,将延迟对基础数据库的数据持久性)。

以上是 EntityManager.flush有什么作用,为什么我需要使用它? 的全部内容, 来源链接: utcz.com/qa/429056.html

回到顶部