Java Spring Boot Crudepository或JpaRepository-如何通过限制作为参数?
我的存储库接口扩展了Java Spring Boot Crudepository或JpaRepository-如何通过限制作为参数?,java,spring,spring-boot,spring-data-jpa,Java,Spring,Spring Boot,Spring Data Jpa,我的存储库接口扩展了crudepository: public interface ExampleRepository extends CrudRepository<Example, Long>{ List<Example> findByValidIsTrueLimit(Integer limit); } public interface ExampleRepository扩展了crudepository{ 列出FindByValidDistrueLimit(整
crudepository
:
public interface ExampleRepository extends CrudRepository<Example, Long>{
List<Example> findByValidIsTrueLimit(Integer limit);
}
public interface ExampleRepository扩展了crudepository{
列出FindByValidDistrueLimit(整数限制);
}
我想将结果列表限制到指定的限制,如SQL查询中的limit
然而,我得到:
原因:org.springframework.beans.factory.BeanCreationException:
创建名为“exampleRepository”的bean时出错:调用init
方法失败;嵌套异常为java.lang.IllegalArgumentException:
未能创建查询方法公共摘要未找到属性限制
对于类型
如何将作为参数传递的限制添加到
crudepository
方法?您可以向方法签名添加一个Pageable
。例如
List findbyvaliddistrue(可分页p)代码>
用法:
List ex=repo.findByValidIsTrue(新页面请求(0,10))代码>来自spring文档():
查询方法的结果可以通过关键字first或top进行限制,这些关键字可以互换使用。可以向top/first追加可选的数值,以指定要返回的最大结果大小。如果省略该数字,则假定结果大小为1
因此,对于固定限制N
您可以使用List findTopNByValidIsTrue()
对于限制的可变值,应使用:
Page findByValidDistributue(可分页可分页);
List result=repository.findByValidIsTrue(新页面请求(0,N)).getContent();
您可以使用,它将为您提供一个页面
,然后您可以从中获取所需的数据
Page<Example> findByValidIsTrue(Pageable pageable);
Page findByValidDistributue(可分页可分页);
然后使用以下命令调用它:-
PageRequest req=新的PageRequest(0,10);//我只想要10张唱片
第Page页=FindByValidDistrue(请求)
List nRecords=page.getContent();
注意:如果在调用FindByValidDistributueLimit
时未传递PageRequest
对象,默认情况下,它将为您提供前20条记录。getContent()不是必需的,您可以直接检索列表。getContent()不是必需的,您可以直接检索列表。
Page<Example> findByValidIsTrue(Pageable pageable);
PageRequest req = new PageRequest(0,10); // I just want 10 record
Page<Example> page = findByValidIsTrue(req )
List<Example> nRecords = page.getContent();