filter Data in Spring Boot Data REST



我使用Spring Boot Data REST,是的,我写的东西如下:

@RepositoryRestResource
public interface ExerciseRepository extends JpaRepository<Exercise, Integer> {}

则打开127.0.0.1/exercises。它会显示所有的练习。但我只想展示一些指定的练习。运动id <100,或其他复杂的逻辑)上的127.0.0.1/exercises。我知道我可以使用@RestController,但我怎么能做到这一点与春季启动数据REST?

@RepositoryRestResource(path="exercises",collectionResourceRel ="exercises">

你能根据自己的代码编辑这个吗?我想这对你会有用的

可以声明一个接口方法,例如:

@RepositoryRestResource
public interface ExerciseRepository extends JpaRepository<Exercise, Integer> {
List<Exercise> findByIdLessThan(@Param("id") Integer id);
}

在这种情况下,查询直接从方法名称派生,但是您也可以使用@Query手动编写查询,有关更多详细信息,请参阅文档。

使用以下API请求调用该方法:

GET http://localhost:8080/exercises/search/findByIdLessThan?id=100

参考,Spring Data REST -有用的注意事项。

编辑:

如果您使用Hibernate作为持久化提供者,您可以使用@Where进行静态过滤,使用@Filter进行动态过滤,根据Hibernate用户指南,在运行时定义和配置过滤器。

例如,您可以用@Where注释实体,并定义一个将应用于与该实体相关的所有查询的条件:

@Where(clause = "id<100")
@Entity
public  class Exercise{
//...
}

最新更新