Hibernate5.2.10和4.2.3版本使用openSession().save()的差異
阿新 • • 發佈:2019-02-12
簡單的來說,4.2.3版本,save()之後,使用flush不需要事務的支援,但是5.2.10使用flush需要事務的支援,簡單的程式碼編寫如下:
public class Test1Dao { private SessionFactory sessionFactory; //通過構造器傳入SessionFactory物件 public Test1Dao(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public void update() { try { Session session = sessionFactory.openSession(); //開啟事務控制 Transaction transaction = session.beginTransaction(); TestInfo testInfo = (TestInfo) session.createNativeQuery("SELECT * from test_info").addEntity(TestInfo.class).uniqueResult(); testInfo.setName("測試dsdbj"); session.update(testInfo); transaction.commit(); } catch (Exception e) { e.printStackTrace(); } } }