Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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 如何限制CriteriaBuilder查询中的记录数?_Java_Hibernate_Jpa - Fatal编程技术网

Java 如何限制CriteriaBuilder查询中的记录数?

Java 如何限制CriteriaBuilder查询中的记录数?,java,hibernate,jpa,Java,Hibernate,Jpa,我想限制CriteriaBuilder中的数据数量,因此我的代码如下所示 typeQuery.setFirstResult(0); typeQuery.setMaxResults(10); typeQuery.getResultList(); but instead of limiting on Database it is fetching whole data and then fetch limit data from session. so my question is how ca

我想限制CriteriaBuilder中的数据数量,因此我的代码如下所示

typeQuery.setFirstResult(0);
typeQuery.setMaxResults(10);
typeQuery.getResultList();

but instead of limiting on Database it is fetching whole data and then fetch limit data from session.

so my question is how can i limit rows directly from database?




不过,您可以尝试使用本机限制或行数。只是另一种方法

您可以尝试使用本机限制或行数。只是另一种方法

试试这个

Integer firstItem = 0;
Integer numOfItems = 10;

return entityManager.createQuery(typeQuery).setFirstResult(firstItem).setMaxResults(numOfItems).getResultList();
在执行te查询时,请尝试以下操作

Integer firstItem = 0;
Integer numOfItems = 10;

return entityManager.createQuery(typeQuery).setFirstResult(firstItem).setMaxResults(numOfItems).getResultList();

在执行te查询时,CriteriaBuilder将查询转换为HQL/JPQL,然后执行查询。HQL/JPQL不支持限制SQL关键字或其他类似关键字。因此,无论是使用CriteriaBuilder还是HQL/JPQL,都不可能以本机方式执行限制查询。

CriteriaBuilder将查询转换为HQL/JPQL,然后执行查询。HQL/JPQL不支持限制SQL关键字或其他类似关键字。因此,无论是使用CriteriaBuilder还是HQL/JPQL,都不可能以本机方式执行限制查询。

不可能,就像您所展示的那样完成。不可能,就像您所展示的那样完成。