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