Spring数据Rest-配置findBy路径

Spring数据Rest-配置findBy路径,spring,jpa,spring-data-jpa,spring-data,spring-data-rest,Spring,Jpa,Spring Data Jpa,Spring Data,Spring Data Rest,使用以下存储库: @RepositoryRestResource(collectionResourceRel = "people", path = "people") public interface PeopleRepository extends PagingAndSortingRepository<People, String> { @RestResource List<People> findByName(@Param("name") Strin

使用以下存储库:

@RepositoryRestResource(collectionResourceRel = "people", path = "people")
public interface PeopleRepository extends PagingAndSortingRepository<People, String> {

    @RestResource
    List<People> findByName(@Param("name") String name);

}
@RepositoryRestResource(collectionResourceRel=“people”,path=“people”)
公共接口PeopleRepository扩展了分页和排序存储库{
@厕所资源
列出findByName(@Param(“name”)字符串名);
}

findByName
的URL自动设置为
/people/search/findByName
。但是它似乎非常冗长,URL是否可以配置为
/people
,查询是否类似于
/people?name=john

如果使用QueryDSL扩展,则可以使用该格式的查询,并且可以通过任何属性组合进行过滤,而无需编写任何查询方法:

配置(假设为Maven)


etc

您可以更改路径的最后一部分(请参阅):

@RestResource(path=“byName”,rel=“byName”)
列出findByName(@Param(“name”)字符串名);
有关QueryDsl的全面实施,请参见@AlanHay answer(更多信息请参阅)

<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-apt</artifactId> 
    <version>4.1.4</version>
    </dependency>
<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-jpa</artifactId> 
    <version>4.1.4</version> 
</dependency>
@RepositoryRestResource(collectionResourceRel = "people", path = "people")
public interface PeopleRepository extends PagingAndSortingRepository<People, String>, 
                                               QuerydslPredicateExecutor<People> {


}
/people?name=john
/people?name=John&address.town=London 
/people/search/byName?name=john