Ответ 1
Вы можете сделать что-то довольно похожее, которое, как я полагаю, будет достигнет результата, который вы ищете.
НЕОБХОДИМЫЕ ШАГИ:
1) UserRepo
теперь будет расширять 2 интерфейса:
public interface UserRepo extends CrudRepository<User, Long>, UserCustomMethods{
}
2) Создайте новый интерфейс с именем UserCustomMethods
(вы можете выбрать имя и изменить как здесь, так и на шаге 1)
public interface UserCustomMethods{
public void mySave(User... users);
}
3) создайте новый класс с именем UserRepoImpl
(здесь имя делает, и оно должно быть RepositoryName Impl), потому что, если вы называете это чем-то другим, вы будете необходимо соответствующим образом настроить конфигурацию Java/XML). этот класс должен реализовать только созданный CUSTOM интерфейс.
СОВЕТ: вы можете добавить entitymanager в этот класс для своих запросов
public class UserRepoImpl implements UserCustomMethods{
//This is my tip, but not a must...
@PersistenceContext
private EntityManager em;
public void mySave(User... users){
//do what you need here
}
}
4) Внесите UserRepo
везде, где вам нужно, и наслаждайтесь как CRUD, так и своими пользовательскими методами:)