我希望构建一个具有通用查找器的REST接口。其想法是提供一个搜索表单,用户可以不提供任何参数获取所有记录,或通过输入字段的任意组合来细化他们的搜索结果。
我有一个简单的示例,使用@RestResource注释JpaRepository,提供了一个很好的开箱即用的方法来添加查找器,可以使用@Query或方法名称约定。
我已经尝试了这篇文章中介绍的方法: http://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/repositories.html#repositories.custom-implementations 但我的自定义方法无法在存储库的REST接口(/users/search)中使用。希望有人已经解决了这个问题并能给我一些指导。
我有一个简单的示例,使用@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);
我已经尝试了这篇文章中介绍的方法: http://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/repositories.html#repositories.custom-implementations 但我的自定义方法无法在存储库的REST接口(/users/search)中使用。希望有人已经解决了这个问题并能给我一些指导。