如果我的实体是以man身份获取,它有name,id属性,JPA如何获取此查询的检索结果,
entityManager.createQuery("SELECT m.name AS name, COUNT(m) AS total FROM Man AS m GROUP BY m.name ORDER BY m.name ASC");
有没有办法将org.springframework.jdbc.core.RowMapper
与JPA一起使用?
答案 0 :(得分:44)
当您执行此查询时,您将检索Object[]
的列表,而不是直接获取通常的对象列表。
对于您检索的每个数组,第一个元素将是行的名称,第二个元素将是计数。
我认为你不能使用RowMapper
和JPA。 RowMapper
来自Spring,它与JPA的框架不同。也许一些JPA实现允许这样做,但我不认为这样做是明智的。
编辑 - 代码示例:
List<Object[]> results = entityManager
.createQuery("SELECT m.name AS name, COUNT(m) AS total FROM Man AS m GROUP BY m.name ORDER BY m.name ASC");
.getResultList();
for (Object[] result : results) {
String name = (String) result[0];
int count = ((Number) result[1]).intValue();
}