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