JPA EntityTransaction flush

时间:2017-10-19 13:34:44

标签: java jpa eclipselink

我想将当前事务中存储的所有entite刷新到数据库中(不通过commit结束当前事务)。

在这样做之前,我是否需要检查交易是否处于活动状态?

if (this.entityTransaction.isActive())
   {
      this.entityManager.flush();
   }

谢谢

1 个答案:

答案 0 :(得分:0)

根据eclipselink的 EntityManager flush 方法的javadoc:

https://www.eclipse.org/eclipselink/api/2.6/javax/persistence/EntityManager.html#flush()

  

void flush()   将持久性上下文与基础数据库同步。   抛出:   TransactionRequiredException - 如果没有事务或实体管理器尚未加入当前事务   PersistenceException - 如果刷新失败

所以是的,看起来你需要检查,其他方式你可能会得到“TransactionRequiredException”类型的异常