这个问题在这里已经有了答案:
8年前关闭。
Possible Duplicate:
How do we count rows using 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,但很可能是 Long)。
第二个查询效率很低,因为 Hibernate 需要从 DB 中检索整个表,对其进行分析,然后对所有行进行计数。
关于java - hibernate native 查询,计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13049137/