Я хочу создать интерфейс REST с помощью универсального искателя. Идея состоит в том, чтобы предоставить форму поиска, в которой пользователи могут получить все записи, не указывая никаких параметров, или уточнить результаты поиска, введя любую комбинацию полей.
Простой пример, который у меня есть, аннотирует JpaRepository с помощью @RestResource, который предоставляет хороший готовый способ добавления средств поиска либо с помощью @Query, либо с помощью соглашений об именах методов.
@RestResource(path = "users", rel = "users")
public interface UserRepository extends JpaRepository<User, Long>{
public Page<User> findByFirstNameStartingWithIgnoreCase(@Param("first") String fName, Pageable page);
}
Я хочу добавить пользовательский поисковик, который будет отображать мои параметры и будет использовать подкачку, сортировку и поддержку REST, где фактический запрос реализации будет составляться динамически (возможно, с использованием QueryDSL), метод будет иметь параметры n (p 1 ... p n) и будет выглядеть так:
public Page<User> findCustom(@Param("p1") String p1, @Param("p2") String p2, ... @Param("pn") String pn, Pageable page);
Я пробовал подход, описанный в:
но мой пользовательский метод недоступен в интерфейсе REST репозитория (/users/search)
Я надеюсь, что кто-то уже понял это и будет любезен дать мне какое-то направление.