如何獲得一個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