使用查询参数过滤结果
Filter Results Using Query Parameter
我正在尝试使用 @Param annotation for a custom query I built using Spring Data JPA's Query Creation,这样当我传递查询参数 ?organizationId=2
时,只会返回具有与给定参数匹配的组织 ID 的任务。
@RepositoryRestResource(collectionResourceRel = "tasks", path = "tasks")
public interface TaskRepository extends JpaRepository<Task, Long> {
List<Task> findByOrganizationId(@Param("organizationId") Long organizationId);
}
问题是,当我访问 /tasks?organizationId=2
的 @RepositoryRestResource
路径时,它似乎正在调用 /tasks
公开的默认 List<Task> findAll();
方法,所有任务返回。
如何使 Spring 将请求定向到我的自定义方法?
所有查询方法资源都暴露在搜索资源下。 (有关详细信息,请参阅 here。)
http://localhost:8080/tasks/search/
应该会为您提供可用搜索端点的列表。一个应该是:http://localhost:8080/tasks/search/findByOrganizationId
,您可以对其应用参数化搜索。
我正在尝试使用 @Param annotation for a custom query I built using Spring Data JPA's Query Creation,这样当我传递查询参数 ?organizationId=2
时,只会返回具有与给定参数匹配的组织 ID 的任务。
@RepositoryRestResource(collectionResourceRel = "tasks", path = "tasks")
public interface TaskRepository extends JpaRepository<Task, Long> {
List<Task> findByOrganizationId(@Param("organizationId") Long organizationId);
}
问题是,当我访问 /tasks?organizationId=2
的 @RepositoryRestResource
路径时,它似乎正在调用 /tasks
公开的默认 List<Task> findAll();
方法,所有任务返回。
如何使 Spring 将请求定向到我的自定义方法?
所有查询方法资源都暴露在搜索资源下。 (有关详细信息,请参阅 here。)
http://localhost:8080/tasks/search/
应该会为您提供可用搜索端点的列表。一个应该是:http://localhost:8080/tasks/search/findByOrganizationId
,您可以对其应用参数化搜索。