我是hibernate和java-ee的新手,我想知道是否有人可以告诉我为什么这段代码返回false,即使从查看数据库我可以看到事务实际上已经提交:
session.beginTransaction();
session.saveOrUpdate(user);
session.getTransaction().commit();
return session.getTransaction().wasCommitted(); //Always false
谢谢!
答案 0 :(得分:2)
wasCommitted()
也无需始终返回true
。如果交易是(明确地)true
通过此本地交易,它将返回committed
;否则false
。
来自docs: -
<强> wasCommitted 强>
即使在成功调用之后,此方法也可能返回false 承诺()。例如,基于JTA的策略no-op on commit()调用 如果他们没有开始交易;在那种情况下,他们也报告 wasCommitted()为false。