Проблема в JPA: пакетное обновление вернуло неожиданное количество строк из обновления [0]; фактическое количество строк: 0; ожидается: 1 - PullRequest
1 голос
/ 07 июля 2010

Я использую JPA со SPRING и mySQL, и у меня возникают проблемы при удалении объекта ...

Я делаю это:

@PersistenceContext
private EntityManager em;

... @Transactional

public void delete(Long id) {

em.flush();
OwnerEntity e = em.getReference(Entity.class, Long.valueOf(id));

if (e == null)
throw new Exception(Status.SERVER_ERROR);
em.remove(e);
em.flush();

}

1 Ответ

3 голосов
/ 07 июля 2010

Что ж, ошибка самоочевидна: вы должны запускать свой код JPA внутри транзакции, и похоже, что это не так, следовательно, TransactionRequiredException.Из его javadoc:

Выдается провайдером постоянства, когда транзакция требуется, но не активна.

Существует множество способов обработки транзакций с помощью Spring, один из которых заключается в том, чтобы аннотировать вашу службу с помощью @Transactional (при условии, что у вас есть <tx:annotation-driven/> в конфигурации Spring).

Поскольку вы мало рассказали нам о том, как вы используете Spring для этого, я предлагаю проверить Глава 9. Управление транзакциями для получения более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...