4 spring hibernate spring-data spring-data-jpa spring-boot
我创建了一个自定义查询
@Repository
public interface SecurityQuestionRepository extends JpaRepository<SecurityQuestion, Integer>{
@Query("select q from SecurityQuestion q order by q.questionId asc limit 0, 3 ")
public List<SecurityQuestion> findQuestion();
}
Run Code Online (Sandbox Code Playgroud)
当我调用服务并调用公共List<SecurityQuestion> findQuestion()方法limit 0,3不起作用
这是休眠日志,
Hibernate: select securityqu0_.question_id as question1_4_, securityqu0_.question_desc as question2_4_ from user_security_question securityqu0_ order by securityqu0_.question_id asc
Run Code Online (Sandbox Code Playgroud)
如何使此限制功能在此工作?
尝试使用类型传递方法参数Pageable:
@Query("select q from SecurityQuestion q order by q.questionId asc")
public List<SecurityQuestion> findQuestion(Pageable page);
Run Code Online (Sandbox Code Playgroud)
当你调用这个函数时,init page就像这样:
securityQuestionRepository.findQuestion(new PageRequest(0, 3));
Run Code Online (Sandbox Code Playgroud)
或者只使用本机查询:
@Query(nativeQuery = true,
value = "select * from user_security_question order by question_id asc limit 0, 3")
public List<SecurityQuestion> findQuestion();
Run Code Online (Sandbox Code Playgroud)
有一个更简单的变体:
public interface SecurityQuestionRepository extends JpaRepository<SecurityQuestion, Integer>{
List<SecurityQuestion> findTop3ByOrderByIdAsc();
}
Run Code Online (Sandbox Code Playgroud)
更多信息请参见此处。
| 归档时间: |
|
| 查看次数: |
5512 次 |
| 最近记录: |