Java 如何从实体管理器查询中获取总结果计数

Java 如何从实体管理器查询中获取总结果计数,java,mysql,spring-boot,Java,Mysql,Spring Boot,我正在使用spring boot进行分页。我正在尝试从实体管理器查询中获取分页的结果总数。为此,我将从查询中获取要显示的maxresults,但如何获取结果总数。请告诉我我是enity manager的新手 @Override public List<User> getsearchresults(String result) { String query = "FROM User WHERE (education = :education) OR (cit

我正在使用spring boot进行分页。我正在尝试从实体管理器查询中获取分页的结果总数。为此,我将从查询中获取要显示的maxresults,但如何获取结果总数。请告诉我我是enity manager的新手

    @Override
public List<User> getsearchresults(String result) {

    String query = "FROM User WHERE (education = :education) OR (city = :city)";

    return em
                .createQuery(query,User.class)
                .setParameter("education",education)
                .setParameter("city",city)
                .setMaxResults(5)
                .getResultList();
 }
@覆盖
公共列表getsearchresults(字符串结果){
String query=“从用户处(教育=:教育)或(城市=:城市)”;
返回em
.createQuery(查询,用户.class)
.setParameter(“教育”,教育)
.setParameter(“城市”,城市)
.setMaxResults(5)
.getResultList();
}

这就是我编写查询的方式,它返回结果,但我需要结果计数的总数。我如何才能做到这一点请帮助我。

当您
setMaxResults
时,此信息将丢失。你不能这样做,然后在
列表中获取所有项目作为对象,然后获得计数(
List.size()
),然后在代码中对其进行过滤吗?@tomgeraghty3我用相同的查询编写了两个函数,一个函数使用maxresults,另一个函数不使用maxresults来获取列表大小。我知道这不是最好的方法,但它对我有效。谢谢你的提示。当你
setMaxResults
时,这些信息会丢失。你不能这样做,然后在
列表中获取所有项目作为对象,然后获得计数(
List.size()
),然后在代码中对其进行过滤吗?@tomgeraghty3我用相同的查询编写了两个函数,一个函数使用maxresults,另一个函数不使用maxresults来获取列表大小。我知道这不是最好的方法,但对我来说很有效。谢谢你的提示。