问题1:到底该用getTransaction还是beginTransaction?
上图说明的问题:
第1步,调用session.getTransaction()的时候,会创建一个全新的Transaction对象;
第2步,调用session.beginTransaction()的时候,会创建一个全新的Transaction对象,没有使用上一步的Transaction对象哦;
第3步,再次调用session.getTransaction()的时候,会看到这时返回的是第2步创建的Transaction对象;
第4步,这时调用session.getCurrentTransaction(),会看到仍然返回第2步创建的Transaction对象;
结论:通常情况下一个session内只会处理一个事务,所以大多数时候可直接调用session.beginTransaction()方法创建一个全新的transaction对象,并开始该事务。
问题2:getCurrentTransaction跟getTransaction有什么区别?