【问题标题】:How to get SELECT values and COUNT value with JPA GROUP BY?如何使用 JPA GROUP BY 获取 SELECT 值和 COUNT 值?
【发布时间】:2011-08-05 12:07:36
【问题描述】:

如果我的实体是以 Man 身份获取的,它具有名称、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 一起使用?

【问题讨论】:

    标签: jpa


    【解决方案1】:

    当您执行此查询时,您将检索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();
    }
    

    【讨论】:

    • 嗨,巴鲁斯!非常感谢您的反馈。如果你有,你能不能把一些可以检索数据作为“Object []”列表的示例代码方式,因为我不知道如何将这些结果与某个对象匹配。谢谢。
    • 嗨,巴鲁斯!非常感谢您的反馈,它运行良好 :),祝您玩得愉快!
    • 这不是 SQL 查询。这是一个 JPQL 查询。
    猜你喜欢
    • 2017-09-30
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    相关资源
    最近更新 更多