我有一个 EJB,我将一个对象保存到数据库中。在我看到的一个示例中,一旦保存此数据(EntityManager.persist),就会调用 EntityManager.flush();为什么我需要这样做?我保存的对象未附加,并且稍后不会在该方法中使用。事实上,一旦保存,该方法就会返回,我希望资源能够被释放。 (示例代码也在删除调用中执行此操作。)
if (somecondition) {
entityManager.persist(unAttachedEntity);
} else {
attachedEntityObject.setId(unAttachedEntity.getId());
}
entityManager.flush();
致电EntityManager.flush();
将强制数据立即保存在数据库中,如下所示EntityManager.persist()
不会(取决于 EntityManager 的配置方式:冲洗模式类型 http://docs.oracle.com/javaee/5/api/javax/persistence/FlushModeType.html(AUTO 或 COMMIT)默认设置为 AUTO 并且将自动完成刷新。但如果将其设置为 COMMIT,则数据到底层数据库的持久化将被延迟,直到事务提交为止。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)