Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate从特定索引或偏移量获取列表。_Java_Hibernate_List_Orm_Paging - Fatal编程技术网

Java Hibernate从特定索引或偏移量获取列表。

Java Hibernate从特定索引或偏移量获取列表。,java,hibernate,list,orm,paging,Java,Hibernate,List,Orm,Paging,假设我有一个水果列表(假设这些水果在数据库中) 假设在我的域或数据访问对象中 public List<String> listOfFruits(){ return myList; } 公共列表listofruits(){ 返回myList; } 现在让我们假设我有1000个水果,我调用了listofruits,当然它将加载整个水果列表,并且假设我们有1000个水果记录,因此它将加载和查询这些水果,并将/产生性能影响 现在我的问题是,在获取这些结果时,

假设我有一个水果列表(假设这些水果在数据库中)

假设在我的域或数据访问对象中

   public List<String> listOfFruits(){
        return myList;
    }
公共列表listofruits(){
返回myList;
}
现在让我们假设我有1000个水果,我调用了
listofruits
,当然它将加载整个水果列表,并且假设我们有1000个水果记录,因此它将加载和查询这些水果,并将/产生性能影响


现在我的问题是,在获取这些结果时,如何在arraylist中添加限制或偏移?我目前正在对此进行分页

如果使用hql查询获取以0开头的前10条记录,只需将
限制0,10
添加到hql即可。

或者使用
Query
上的
setMaxResults
setFirstResult
方法在代码中,您手动将水果添加到列表中,这些记录已经在内存中,因此在获取这些水果时添加限制没有多大意义

但如果使用Hibernate从数据库检索记录,则可以执行以下操作:

Query q = session.createQuery("FROM table");
q.setFirstResult(firstResult);
q.setMaxResults(maxResults);

如果有人想部分地从表中获取记录,添加限制或设置start和max result将解决问题。但是,如果水果列表是某些对象(如currentStock)的一部分,并且我们想部分地加载此列表,则这些解决方案将如何工作。

您应该先发布一个查询,然后尝试什么。只需在hql中使用
limit
。在我的代码中,我将立即调用listofruits()方法并迭代它们。是的,firstResult是当前页面的起点,maxResults是您希望在一个页面上显示的结果数,假设您正在进行分页。如何将这些结果作为列表返回?
Query q = session.createQuery("FROM table");
q.setFirstResult(firstResult);
q.setMaxResults(maxResults);