Когда мы хотим добавить пользовательские методы во все репозитории Spring Data JPA, первое, что нам нужно, это создать базовый интерфейс, который объявляет пользовательские методы.
1) Первый шаг:Создание базового интерфейса
//Annotation to exclude repository interfaces from being picked up and thus in consequence getting an instance being created.
@NoRepositoryBean
public interface ReadOnlyRepository<T, ID extends Serializable> extends Repository<T, ID> {
T findOne(ID id);
List<T> findAll();
}
2) Второй шаг: реализация базового интерфейса репозитория
public interface IUserReadOnlyRepository extends ReadOnlyRepository<User,Integer>
{
User findById(Integer id);
List<User> findByName(String name);
@Query("select u from MyUser u where u.name = ?1")
List<User> findUserByAttributeAndValueCustomQuery(String string2);
}
3) Третий шаг: только автопроводв контроллер / RESTController
@RestController
@RequestMapping("/user")
@CrossOrigin
//@EnableTransactionManagement
public class UserController {
@Autowired
private IUserReadOnlyRepository userReadOnlyRepository;
@RequestMapping(value = "/getUserByIdReadOnlyRepository/{id}")
public @ResponseBody User getUserById(@PathVariable Integer id)
{
User user = userReadOnlyRepository.findById(id);
return user;
}
Примечание: это прекрасно работает для меня !.Если требуется какая-либо помощь, пинг мне.