Spring Data JPA уже предоставляет множество решений, которые позволяют нам проще запрашивать данные, такие как метод запроса, метод запроса или интерфейс с четырьмя репозиториями (JpaRepository, PagingAndSortingRepository, CrudRepository, Repository). Эти мощные функции очень помогают мне при создании приложения с помощью Spring Data JPA. Но нам все еще нужно много времени, чтобы настроить индивидуальный запрос или метод для удовлетворения ожиданий или требований.

На приведенной выше схеме проектирования классов показано, как мы можем создать собственный репозиторий в Spring Data JPA. Нам просто нужно позволить EmployeeRepository реализовать настраиваемый интерфейс и определить реализацию для настраиваемого репозитория. Следуя этой схеме, мы можем легко применить запрос по примеру, метод запроса, а также другие функции Spring Data JPA.

Вы можете спросить, куда мы поместили аннотацию @Repository. Ответ находится в EmployeeRepository интерфейсе. Нам просто нужно предоставить реализацию репозитория настройки, другие части позволяют Spring Framework завершить работу. В этой статье не будет рассказано, как эта функция работает под крючком. Я только хочу сказать вам, что Spring Framework применяет АОП и прокси для создания этой мощной функции.

Пример кода настраиваемого репозитория

Мы определяем простую сущность под названием Сотрудник

И посмотрите, как нам определить EmployeeRepository интерфейс.

Теперь мы видим, что EmployeeRepository extends как EmployeeCustomizedRepository, так и JpaRepository мы установили EmployeeRepository extends JpaRepository, чтобы получить все мощные функции встроенного репозитория Spring Data JPA.

Кроме того, мы позволяем EmployeeRepository расширять EmployeeCustomizedRepository, чтобы создать собственный репозиторий.

EmployeeCustomizedRepository:

Взгляните на реализацию EmployeeCustomizedRepository:

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

Проверить нашу работу

Я использовал CommandLineRunner для тестирования наших работ, после запуска этой программы все совпавшие записи должны быть напечатаны в журнале консоли после UserCustomizedRepositoryImpl → реализовать

Вывод

До сих пор мы узнали, как мы можем разработать класс и интерфейс, чтобы создать собственный репозиторий с помощью Spring Data JPA. Примечательно, что у нас есть пример кода для практики теории.

Исходная демонстрация: https://github.com/Programming-Sharing/spring-data-jpa-demo/tree/customizing-repository-spring-data-jpa

Призыв к действию

Я хотел бы предложить вам зарегистрировать среднее членство, чтобы читать все мои статьи, а также другие статьи. Если вам интересно, вы можете зарегистрироваться по ссылке ниже. Я заработаю немного денег на Medium, когда вы зарегистрируетесь по моей ссылке. Заранее большое спасибо.

Https://tranthanhdeveloper.com/membership