gpt4 book ai didi

java - 如何调整 JPA 的大小以适应 Criteriaquery

转载 作者:行者123 更新时间:2023-12-02 03:43:37 26 4
gpt4 key购买 nike

我有这个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();

我想执行以下条件查询:

SELECT COUNT(p),pa.nomPays FROM SessionPersonne s JOIN s.personne p , 
p.entreprise e , e.adresse a , a.localite l , l.pays pa , s.session session
WHERE size(s.passageCollection) > 0 GROUP BY pa.nomPays

但是 size(s.passageCollection) > 0 如何处理关键查询呢?

谢谢你。

最佳答案

本教程很好地解释了一切。 http://www.baeldung.com/jpa-pagination

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

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 - 如何调整 JPA 的大小以适应 Criteriaquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36570198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com