0
我是新來的休眠和一般的Java EE和我想知道是否有人能告訴我,爲什麼這段代碼返回false,即使從看數據庫中,我可以看到交易實際承諾:爲什麼transaction.wasCommitted()返回false?
session.beginTransaction();
session.saveOrUpdate(user);
session.getTransaction().commit();
return session.getTransaction().wasCommitted(); //Always false
謝謝!
從API javadoc:檢查此事務是否成功提交。 即使成功調用commit()後,此方法也可能返回false。舉例來說,基於JTA的策略如果沒有啓動事務,就不會執行commit()調用;在那種情況下,他們也會報告wasCommitted()爲false。「不知道這是否解釋了什麼。 – 2013-03-19 15:45:25
因爲提交併不一定只發生在你要求之後(也許commit()是在另一個線程中啓動的),等等......總之,沒有任何意義要求你剛纔做的事情(這就像是問一個== 3在a = 2 + 1之後)。 – m0skit0 2013-03-19 15:47:46
那麼這很奇怪,爲什麼有一種方法不能真正起作用? – 2013-03-19 15:50:19