我想将当前事务中存储的所有entite刷新到数据库中(不通过commit结束当前事务)。
在这样做之前,我是否需要检查交易是否处于活动状态?
if (this.entityTransaction.isActive())
{
this.entityManager.flush();
}
谢谢
答案 0 :(得分:0)
根据eclipselink的 EntityManager 类 flush 方法的javadoc:
https://www.eclipse.org/eclipselink/api/2.6/javax/persistence/EntityManager.html#flush()
void flush() 将持久性上下文与基础数据库同步。 抛出: TransactionRequiredException - 如果没有事务或实体管理器尚未加入当前事务 PersistenceException - 如果刷新失败
所以是的,看起来你需要检查,其他方式你可能会得到“TransactionRequiredException”类型的异常