我正在寻找使用通用查找器构建 REST 接口。这个想法是提供一个搜索表单,用户可以通过不提供任何参数来获取所有记录,或者通过键入字段的任何组合来优化他们的搜索结果。
我用@RestResource 注释了JpaRepository 的简单示例,它提供了一种很好的开箱即用的方式来通过使用@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) 中不可用
我希望有人已经弄清楚了这一点,并愿意给我一些指导。