Я застрял с JPA 2.0 и не могу обновить. Мне удалось получить хранимую процедуру для обновления базы данных, как и ожидалось, но транзакция остается открытой, и я не могу выполнить другое действие с этой таблицей или открыть новое соединение, потому что первое все еще активно. Я также не могу закрыть менеджер сущностей, потому что транзакция активна. Что мне нужно закрыть, чтобы я мог совершить новую транзакцию?
EntityManagerFactory emf = JPAUtil.getEntityManagerFactory(ENTITY_MANAGER_NAME);
EntityManager em = emf.createEntityManager();
try{
em.getTransaction().begin();
Query q = em.createNativeQuery("exec dbo.mystoredprocedure;");
q.getResultList();
} finally {
em.close();
}
Обновление: при попытке воссоздать ошибки, которые я видел, мне удалось это исправить ... Думаю? Поменял пару вещей и похоже работает на данный момент. Необходимо выполнить еще несколько проверок для проверки.
- Изменен метод getResultList () на executeUpdate ();
- Добавлен em.getTransaction (). Commit (); после выполнения запроса. Клянусь, я пробовал это однажды раньше, и у меня возникла проблема, поэтому я не знаю, что сработало сейчас.