栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用JPA Criteria API进行分页的总行数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用JPA Criteria API进行分页的总行数

谢谢弗拉基米尔!我接受了您的想法,并使用了单独的计数查询来在其中使用现有的谓词数组。最终实现如下所示:

CriteriaBuilder builder = em.getCriteriaBuilder();CriteriaQuery<Brand> cQuery = builder.createQuery(Brand.class);Root<Brand> from = cQuery.from(Brand.class);CriteriaQuery<Brand> select = cQuery.select(from);..//Created many predicates and added to **Predicate[] pArray**..CriteriaQuery<Long> cq = builder.createQuery(Long.class);cq.select(builder.count(cq.from(Brand.class)));// Following line if commented causes [org.hibernate.hql.ast.QuerySyntaxException: Invalid path: 'generatedAlias1.enabled' [select count(generatedAlias0) from xxx.yyy.zzz.Brand as generatedAlias0 where ( generatedAlias1.enabled=:param0 ) and ( lower(generatedAlias1.description) like :param1 )]]em.createQuery(cq);cq.where(pArray);Long count = em.createQuery(cq).getSingleResult();..select.where(pArray);..// Added orderBy clauseTypedQuery typedQuery = em.createQuery(select);typedQuery.setFirstResult(startIndex);typedQuery.setMaxResults(pageSize);List resultList = typedQuery.getResultList()

尽管这很好,但是我仍然不确定为什么我必须写

em.createQuery(cq);

使它工作。任何的想法?



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/447527.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号