如何获得一个namedquery的计数,而不必获取所有列表(它会提高我认为的性能)。这是指定的查询不起作用:JPA count NamedQuery
@NamedQuery(name = "Charakteristika.findAllCount", query = "SELECT COUNT(c) FROM Charakteristika c")
执行此:
System.out.println("a");
System.out.println(em.createNamedQuery("Charakteristika.findAllCount", Integer.class).getSingleResult().intValue());
System.out.println("b");
输出:
a
虽然这个查询工作:
@NamedQuery(name = "Charakteristika.findAll", query = "SELECT c FROM Charakteristika c")
执行这个:
System.out.println("a");
System.out.println(em.createNamedQuery("Charakteristika.findAll", Charakteristika.class).getResultList().size());
System.out.println("b");
输出:
a
11111
b
@JBNizet查询是相同的,执行是不同的。 – 2012-08-10 07:10:22
我很抱歉,问题仍然是一样的,只是拼写错误的第二个查询。 – Minutis 2012-08-10 07:16:54
@JBNizet第二次执行指定结果类型为“Charakteristika.class”;我猜测那是抛出一些东西,为每个'N'行返回一个计数。 – 2012-08-10 07:23:24