Исключение «Выполнение запроса на обновление / удаление» для @NamedQuery, выполняющего REMOVE - PullRequest
8 голосов
/ 03 июня 2010

Следующее исключение выдается для приложения Spring Batch:

19:12:40,083 ERROR main AbstractStep:213 - Encountered an error executing the step
javax.persistence.TransactionRequiredException: Executing an update/delete query

Код, где использовался именованный запрос:

entityManagerFactory.createEntityManager()
                    .createNamedQuery("removeQuery").executeUpdate();

также пытался обернуть этот код в begin и commit методов EntityTransaction объекта и, не помогло:

EntityManager em = entityManagerFactory.createEntityManager();
EntityTransaction transaction = em.getTransaction();
transaction.begin();
entityManagerFactory.createEntityManager()
                    .createNamedQuery("removeQuery").executeUpdate();
transaction.commit();
em.close();
entityManagerFactory.close();

Заранее спасибо

1 Ответ

2 голосов
/ 03 января 2013

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

Заменить

entityManagerFactory.createEntityManager()
                    .createNamedQuery("removeQuery").executeUpdate();

от

em.createNamedQuery("removeQuery").executeUpdate();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...