Невозможно закрыть транзакцию на вызове хранимой процедуры JPA2.0 - PullRequest
0 голосов
/ 25 января 2020

Я застрял с 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();
    }

Обновление: при попытке воссоздать ошибки, которые я видел, мне удалось это исправить ... Думаю? Поменял пару вещей и похоже работает на данный момент. Необходимо выполнить еще несколько проверок для проверки.

  1. Изменен метод getResultList () на executeUpdate ();
  2. Добавлен em.getTransaction (). Commit (); после выполнения запроса. Клянусь, я пробовал это однажды раньше, и у меня возникла проблема, поэтому я не знаю, что сработало сейчас.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...