Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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/3/templates/2.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 如何将JPA大小设置为Criteriaquery_Java_Hibernate_Jpa_Criteriaquery - Fatal编程技术网

Java 如何将JPA大小设置为Criteriaquery

Java 如何将JPA大小设置为Criteriaquery,java,hibernate,jpa,criteriaquery,Java,Hibernate,Jpa,Criteriaquery,我有以下Java代码: CriteriaBuilder qb = entityManager.getCriteriaBuilder(); CriteriaQuery<Long> cq = qb.createQuery(Long.class); cq.select(qb.count(cq.from(MyEntity.class))); cq.where(/*your stuff*/); return entityManager.createQuery(cq).getSingleR

我有以下Java代码:

CriteriaBuilder qb = entityManager.getCriteriaBuilder(); 
CriteriaQuery<Long> cq = qb.createQuery(Long.class);
cq.select(qb.count(cq.from(MyEntity.class))); 
cq.where(/*your stuff*/); 
return entityManager.createQuery(cq).getSingleResult();
但是sizes.passageCollection>0如何处理关键查询


谢谢。

您可以获得以下标准中使用的尺寸

Expression<Integer> sizeExpr = qb.size(SessionPersonne_.passageCollection)

您可以按如下方式获取用于条件的大小

Expression<Integer> sizeExpr = qb.size(SessionPersonne_.passageCollection)

本教程很好地解释了所有内容。

为了防止链接中断,我将添加一个段,并添加放置位置

int pageNumber = 1;
int pageSize = 10;
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();

CriteriaQuery<Long> countQuery = criteriaBuilder.createQuery(Long.class);
countQuery.select(criteriaBuilder.count(countQuery.from(Foo.class)));
Long count = entityManager.createQuery(countQuery).getSingleResult();

CriteriaQuery<Foo> criteriaQuery = criteriaBuilder.createQuery(Foo.class);
Root<Foo> from = criteriaQuery.from(Foo.class);
CriteriaQuery<Foo> select = criteriaQuery.select(from);
select.where(criteriaBuilder.equal(fromRoot.get("entityColumb"), "bar")));

TypedQuery<Foo> typedQuery = entityManager.createQuery(select);
while (pageNumber < count.intValue()) {
    typedQuery.setFirstResult(pageNumber - 1);
    typedQuery.setMaxResults(pageSize);
    System.out.println("Current page: " + typedQuery.getResultList());
    pageNumber += pageSize;
}

本教程很好地解释了所有内容。

为了防止链接中断,我将添加一个段,并添加放置位置

int pageNumber = 1;
int pageSize = 10;
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();

CriteriaQuery<Long> countQuery = criteriaBuilder.createQuery(Long.class);
countQuery.select(criteriaBuilder.count(countQuery.from(Foo.class)));
Long count = entityManager.createQuery(countQuery).getSingleResult();

CriteriaQuery<Foo> criteriaQuery = criteriaBuilder.createQuery(Foo.class);
Root<Foo> from = criteriaQuery.from(Foo.class);
CriteriaQuery<Foo> select = criteriaQuery.select(from);
select.where(criteriaBuilder.equal(fromRoot.get("entityColumb"), "bar")));

TypedQuery<Foo> typedQuery = entityManager.createQuery(select);
while (pageNumber < count.intValue()) {
    typedQuery.setFirstResult(pageNumber - 1);
    typedQuery.setMaxResults(pageSize);
    System.out.println("Current page: " + typedQuery.getResultList());
    pageNumber += pageSize;
}

为什么将其标记为与java相关?因为criteriaquery criteriabuilder和java不相关?criteriabuilder qb=entityManager.getCriteriaBuilder;CriteriaQuery cq=qb.createQueryLong.class;cq.selectqb.countcq.fromMyEntity.class;cq.where/*您的资料*/;返回entityManager.createQuerycq.getSingleResult;请在您的问题中添加java代码,这将使您更容易理解您想做什么。我想将JPA代码转换为criteriaBuilder我正在添加java代码为什么将其标记为与java相关?因为criteriaquery criteriaBuilder和java不相关?criteriaBuilder qb=entityManager.getCriteriaBuilder;CriteriaQuery cq=qb.createQueryLong.class;cq.selectqb.countcq.fromMyEntity.class;cq.where/*您的资料*/;返回entityManager.createQuerycq.getSingleResult;请在您的问题中添加java代码,这将使您更容易理解您想做什么。我想将JPA代码转换为criteriaBuilder我正在添加java代码