Я получаю эту ошибку, когда пытаюсь запустить этот код.Исключенное транзакцией исключение при выполнении обновления для запроса обновления JPQL
Ошибка:
javax.persistence.TransactionRequiredException: executeUpdate не поддерживается для объекта запроса, полученного посредством нетранзакционного доступа управляемого контейнером транзакций EntityManager
код: (_ut является объектом UserTransaction)
общественного недействительный setMainCategory (целое число deptId, Целый CatID) {
try {
Query setmain = _entityManager.createNamedQuery("Category.setAsMain");
Query removeMain = _entityManager.createNamedQuery("Category.removeMain");
setmain.setParameter("categoryId", catId);
Department d;
d=_entityManager.find(Department.class, deptId);
removeMain.setParameter("department", d);
_ut.begin();
removeMain.executeUpdate();
_ut.commit();
_ut.begin();
setmain.executeUpdate();
_ut.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
У меня есть другие функции, которые идентичны в реализации, и они не бросают эту ошибку.
Любые предложения были бы весьма полезными.
Спасибо.
Я согласен, что это, вероятно, исправить свою ошибку, но я до сих пор говорят, что он должен использовать @Transactional с управляемой контейнером EntityManager – Gab
Да, точно. Но я думаю, что проект может быть устаревшим проектом, который стоит слишком много, чтобы перейти к использованию аннотации. – OQJF