Как сохранить простые CRUD-коды в сервисе, как GenericDao / JpaRepository? - PullRequest
2 голосов
/ 05 октября 2011

Наш веб-проект использует spring3, Jpa (hibernate).

Чтобы сохранить CRUD и другие часто используемые методы, мы сделали наши репозитории подклассами весеннего JpaRepository.

Иногда я просто вводилрепозитории в Controller, это удобно для тех простых (или ни один) бизнес-логики доступ только для чтения данных.например, перечислить все объекты типа объекта в поле зрения ... Я знал, что все это должно быть сделано на уровне сервиса с областью транзакции, но это действительно удобно.

Теперь приходит правило: уровень контроллера должен черезУровень доступа к сервису.Внедрение репозиториев в контроллер не допускается.

например:

У меня есть объект: Country.java

И у меня есть interface CountryRepository extends JpaRepository<Country, Long>

Также у меня есть CountryService и CountryServiceImpl, который имеетCountryRepository введен.Затем я должен создать методы findAll, findOne, count, findAll (с сортировкой) ...., и эти реализации - не более чем return countryRepository.findAll() countryRepository.findOne(id) countryRepository.count()...

И для каждой сущности я должен сделать то же самое снова иснова ...

Возможно ли, что на уровне сервиса сохраняются эти методы, используя общий способ?

1 Ответ

2 голосов
/ 05 октября 2011

Предоставляйте только те сервисы, которые действительно использует ваше приложение.Я сомневаюсь, что вам нужно findAll или count для каждой сущности.

Тот факт, что реализация этих методов очень проста, - это хорошо: у вас не возникнет никаких трудностей при их реализации и тестировании.,Если они станут более сложными и нуждаются в нескольких вызовах методов репозитория и немного бизнес-логики, вам будет просто необходимо изменить метод, а не менять весь свой дизайн.

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