hibernate native查询,count

可能重复:
我们如何使用Hibernate计算行数?

我希望按数据库中的条件计算记录数。
我尝试使用下一个查询

String queryString = "SELECT Count(*) FROM my_table"; Query query = entityManager.createNativeQuery(queryString); 

但是没有方法来执行此Query query并获得结果。
我知道,我可以使用记录来计算记录

 String queryString = "SELECT * FROM my_table"; Query query = entityManager.createNativeQuery(queryString); query.getResultList().size(); 

所以问题是,使用Count(*)查询更多性能,如果yes ,那么如何使用Count(*)执行查询?

您可以通过调用Query.getSingleResult()来执行您的第一个查询,例如。

 String queryString = "SELECT Count(*) FROM my_table"; Query query = entityManager.createNativeQuery(queryString); System.out.println(query.getSingleResult()); 

如果要将计数分配给变量,则需要将其转换为正确的类型(它可能取决于DB,但很可能是长的)。 第二个查询非常低效,因为Hibernate需要从DB检索整个表,分析它然后计算所有行。

你试过调用query.getSingleResult()吗?