Вам не нужно копировать методы Repository
для какой-либо службы.Spring Data JPA предлагает множество мощных функций для написания пользовательских запросов.
Предположим, у вас есть UserRepository
для домена с именем User
и вы хотите найти пользователя по его / ее адресу электронной почты.Вместо создания findByEmail
метода в отдельном сервисе, который расширяет UserRepository
, просто объявите его в интерфейсе UserRepository
:
User findByEmail(String email);
Spring Data JPA сделает всю грязную работу за вас.Вы можете вызвать этот метод, введя UserRepository
внутри Controller
(или других классов).
Выше приведен только простой пример.Вы даже можете объявить запрос с несколькими условиями:
User findByEmailOrUsername(String email, String username);
User findByEmailAndActiveTrue(String email);
List<User> findTop10ByEmail();
Я бы посоветовал вам изучить официальную документацию Spring Data JPA.Есть так много вещей, которые вы можете сделать, написав несколько строк кода.