2013-12-12 96 views
1

EntityManager.persist()不會保存到數據庫中並添加到我的項目中的新實體bean。以前同樣添加的bean會保存到數據庫中。EntityManager.persist()不保存到數據庫

我試過添加EntityManager.getTransaction().commit(),這會導致錯誤,並且EntityManager.flush(),但是這會導致TransactionRequiredException

任何幫助,將不勝感激。

+0

可能有不同的原因。首先,檢查你的persistence.xml。您是否列出了實體或「 false」這一行? – kalamar

回答

0

EntityManager.getTransaction().begin()之前persist()然後commit()之後。

0

所有的事務操作都應該在begin和commit之間保持。

EntityManager.getTransaction().begin() 
    . 
    . 
    EntityManager.persist(); 
    EntityManager.flush() 
    . 
    . 
EntityManager.getTransaction().commit() 
0

謝謝!開始的電話是這裏缺少的東西,我也使用JTA,這意味着我必須像這樣管理它:

UserTransaction transaction = (UserTransaction)new InitialContext().lookup("java:comp/UserTransaction"); 
transaction.begin(); 
EntityManager em = getEntityManager(); 
em.persist(YourBean); 
transaction.commit();