为什么transaction.wasCommitted()返回false?

时间:2013-03-19 15:42:30

标签: java mysql hibernate java-ee glassfish

我是hibernate和java-ee的新手,我想知道是否有人可以告诉我为什么这段代码返回false,即使从查看数据库我可以看到事务实际上已经提交:

    session.beginTransaction();
    session.saveOrUpdate(user);
    session.getTransaction().commit();
    return session.getTransaction().wasCommitted(); //Always false

谢谢!

1 个答案:

答案 0 :(得分:2)

即使提交成功

wasCommitted()也无需始终返回true。如果交易是(明确地)true通过此本地交易,它将返回committed;否则false

来自docs: -

  

<强> wasCommitted

     

即使在成功调用之后,此方法也可能返回false   承诺()。例如,基于JTA的策略no-op on commit()调用   如果他们没有开始交易;在那种情况下,他们也报告   wasCommitted()为false。