我有一个查询来计算数据库中的行,当我使用query执行它时.getSingleResult()的性能非常差(大约13秒)但是如果我使用query.getResultList()执行相同的查询则表现(约1或2秒)。我不明白为什么会这样。
我在javax.persistence.Query中使用Query,框架是Hibernate
代码是这样的:
StringBuilder countJpql = new StringBuilder("SELECT COUNT(e) FROM Entity e");
Query countQuery = em.createQuery(countJpql.toString())
Long count = (Long) countQuery.getSingleResult()
和
StringBuilder countJpql = new StringBuilder("SELECT COUNT(e) FROM Entity e");
Query countQuery = em.createQuery(countJpql.toString())
List<Long> countList = countQuery.getResultList()
其中em是EntityManager