2016-12-31 77 views
1

我在java EE中創建了restful api。使用休眠和提交將數據保存在數據庫中()

我已經在類中定義

private static Session session = NewHibernateUtil.getSessionFactory().getCurrentSession(); 
private static org.hibernate.Transaction tx = session.beginTransaction(); 

和方法我打電話然而

Person n = new Person(getPersonId() , name); 
      session.save(n); 
      tx.commit(); 

提交()關閉交易,且無需提交數據不會被保存在數據庫中。在不使用提交的情況下將數據保存到數據庫的最佳方式是什麼?這導致在每個緩慢的請求上創建新的事務。

+0

*這會導致在每個緩慢的請求上創建新的事務*:不,它不慢。從你的腦海中解脫出來。 –

+0

另外,如果您使用的是Java EE容器,那麼您應該使用JPA和聲明式事務處理。自己啓動和提交hibernate事務正是Java EE允許避免的關鍵之一。 –

回答

0

嘗試不使用事務並提交。保存後使用刷新。

+0

可以詳細說明嗎? – Dingo

+0

session.save(n);調用Session.flush();這不會創建一個sql事務,但應該插入n個寄存器。 – user7358693