2013-12-12 2 views
1

EntityManager.persist() не сохраняет базу данных с новым объектом. Я добавил в свой проект. Ранее аналогичные добавленные бобы сохраняются в базе данных.EntityManager.persist() не сохраняет в базе данных

Я попытался добавить EntityManager.getTransaction().commit(), что приводит к ошибке и EntityManager.flush(), но это приводит к TransactionRequiredException.

Любая помощь будет оценена по достоинству.

+0

Для этого могут быть разные причины. Прежде всего, проверьте свой persistence.xml. У вас есть либо список объектов, либо строка « false»? – kalamar

ответ

0

Включить EntityManager.getTransaction().begin() до persist(), а затем commit() после этого.

0

Все транзакционные операции должны храниться между началом и фиксацией.

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(); 

 Смежные вопросы

  • Нет связанных вопросов^_^