2015-09-18 2 views
-1

Я изучаю JPA используя EclipseLink.
Я много искал, но не нашел ответа.Ошибка обработки для JPA EntityManager find(), remove(), persist() методы

Мой вопрос, когда мы используем EntityManagerfind(), remove(), persist() методы, как мы можем быть уверены, что эти методы работали, как они предполагают, чтобы быть.

Например, если persist() сохранил строку, если вставка не произошла по какой-либо причине, она вернет любую ошибку.

Аналогичным образом, если find() не нашел данных в базе данных или remove() не нашел строку для удаления или удаления из-за ограничений.

Как мы можем обрабатывать эти сценарии с помощью обработки исключений?

+0

вы улавливаете PersistenceException из remove/persist и проверяете возврат из find ... согласно их javadocs –

ответ

0

Типичный вариант использования является для запуска этих методов в Try/поймать блок, где:

  1. Открытая сделка
  2. запустить код
  3. фиксации транзакции
  4. отката транзакции, если исключение было брошено в код.

Как Нил уже упоминалось, любая проблема с методами EclipseLink будет рассматриваться как исключение (PersistenceException в этом случае, но я просто поймать общий Exception или даже Throwable, потому что не только живучесть проблема может произойти, и вы всегда можете повторно выдать их к верхним уровням кода после обработки транзакции должным образом).

Здесь хорошо NetBeans sample.

Смежные вопросы