Реализация Spring, Morphia и DataAccessException - PullRequest
3 голосов
/ 15 ноября 2010

Я использую Morphia и MongoDB с моим приложением Spring. Во многих примерах проектов я вижу, что многие методы интерфейса службы генерируют исключение DataAccessException. Из того, что я могу сказать, это исключение выдается из различных классов инфраструктуры, чтобы упростить обработку исключений для различных реализаций доступа к данным.

На данный момент, я предполагаю, что должен отловить любые ошибки, выданные Morphia, и выдать исключение DataAccessException из моей реализации сервиса. Поэтому мой вопрос заключается в том, должен ли я моделировать этот подход с моими реализациями служб, использующими Morphia? Или, может быть, я просто неправильно это понимаю.

1 Ответ

3 голосов
/ 15 ноября 2010

Это имеет смысл, если вы хотите, чтобы ваша бизнес-логика могла реагировать на определенные типы DataAccessException, не будучи зависимой от типов Morphia / Mongo.

Самый простой способ сделать это - написать класс, который реализует PersistenceExceptionTranslator и знает, как преобразовать исключения Morphia / Mongo в DataAccessException.Объявите этот класс как bean-компонент, и Spring автоматически попросит его перевести исключения, если ваш класс DAO помечен @Repository.

Однако, если вашей бизнес-логике или логике обработки исключений действительно нет дела который выбрасывает тип исключения, тогда, казалось бы, мало смысла.

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