Java JPA Qyery查找范围之间的记录

Java JPA Qyery查找范围之间的记录,java,mysql,hibernate,jpa,Java,Mysql,Hibernate,Jpa,我在一个表中有100万条记录,我想使用EJB3.1(JPA查询)一次获取1000条记录,但没有得到任何好的方法,限制是JPA的意外标记。因此,请建议我一种在方法调用中获取有限记录的方法。我使用了setFirstResult(count)和setMaxResult(count+1000)但是在下一个方法中,每次都从0开始调用firstResult集,而不是从1001开始,以更新我维护计数器的setFirstResult计数。但仍然没有得到任何解决方案 String query = "select

我在一个表中有100万条记录,我想使用EJB3.1(JPA查询)一次获取1000条记录,但没有得到任何好的方法,限制是JPA的意外标记。因此,请建议我一种在方法调用中获取有限记录的方法。我使用了
setFirstResult(count)
setMaxResult(count+1000)
但是在下一个方法中,每次都从0开始调用firstResult集,而不是从1001开始,以更新我维护计数器的setFirstResult计数。但仍然没有得到任何解决方案

String query = "select a from CourseMasterBo a";
        List<CourseMasterBo> list = new ArrayList<CourseMasterBo>();
         list = manager.createQuery(query).setFirstResult(4).setMaxResults(8).getResultList();
         logger.info("list size--------"+list.size());   


 I should get 4 as size of list but i am getting 8 ,starting from intial to 8th records in db.
below is my query and answer---->
17:39:47,435 INFO  [com.infinite.gndu.academicDtos.AcademicYear] list size--------8
String query=“从CourseMasterBo a中选择a”;
列表=新的ArrayList();
list=manager.createQuery(query).setFirstResult(4.setMaxResults(8.getResultList();
logger.info(“列表大小-------”+list.size());
我应该得到4作为列表的大小,但我得到8,从最初的到第8记录在数据库中。
下面是我的问题和答案-->
17:39:47435信息[com.infinite.gndu.academicDtos.AcademicYear]列表大小--------8
试试这个:

//....
int queryResultSize = 1000000;

public List getResultQuery(queryResultSize){
    String SQL_QUERY = "SELECT ...."; // your query
    List resultList = new ArrayList(); // Add the specific type of the result

    for(int i = 0; i < queryResultSize; i++){
        resultList.addAll(entityManager.createQuery(SQL_QUERY).setParameter(arg0,arg1).
            setFirstRsult(i).setMaxResults(1000 + i).getResultList());
    }

    return resultList;
}
/。。。。
int queryResultSize=1000000;
公共列表getResultQuery(queryResultSize){
字符串SQL\u QUERY=“SELECT….”;//您的查询
List resultList=new ArrayList();//添加结果的特定类型
对于(int i=0;i
如果您只想获取100条记录而不设置setMaxResult(100),并且不更改setMaxResult值并继续更改setFristResult(),如0.101100始终为您提供100条结果,则我得到了答案

是的,先生,我维护计数器而不是每次从0开始的setFirstResult,您是否实现过,我没有得到正确的结果,如果您知道如何实现,请与我共享代码显示一些代码,到目前为止你做了什么?嘿,我已经在下面发布了我的代码,请查看并更正我。你的代码应该发布在问题中,而不是作为答案。编辑帖子