【问题标题】:Getting total count in JPA entitymanager query在 JPA entitymanager 查询中获取总数
【发布时间】:2020-05-22 21:26:49
【问题描述】:

我正在尝试通过实体管理器执行 JPA 查询,分页工作正常。 下面给出了工作代码,但是我怎样才能得到数据库中的记录总数呢?

ResponseModel queryResponse = new ResponseModel();
            Query queryResult = null;
            try {

                Pageable pageable = MyUtils.buildJpaPagable(queryContext);
                queryResult = entityManager.createQuery(query);

                if(pageable!=null)
                    queryResult.setMaxResults(pageable.getPageSize())
                        .setFirstResult(pageable.getPageNumber() * pageable.getPageSize());

                long totalRecord = 0;

                queryResponse.setResponse(queryResult.getResultList()); 

                totalRecord= queryResult.getMaxResults();

                queryResponse.setTotalCount(totalRecord);

            }

【问题讨论】:

  • 您必须再次为您的查询进行计数查询,没有限制和偏移。

标签: jpa


【解决方案1】:

您需要通过将 select whatever 部分替换为 select count(*) 来为您的 query 创建计数查询。

如何做到这一点取决于query 的来源和种类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 2022-07-11
    相关资源
    最近更新 更多