当前位置: 首页 > 知识库问答 >
问题:

Spring Data JPA自定义计数查询未显示所有记录

夏学名
2023-03-14

查询不是返回所有的记录,即返回所有计数相同的记录。在MYSQL工作台的相同代码的地方,工作就像一个魅力

JPA自定义查询

public interface BookingRepository extends JpaRepository<Booking, Long> {

    @Query("select count(v.source), concat(v.source,'-', v.destination) as bus_route from Booking v group by v.source, v.destination")
    public List<Object[]> groupByBus();
}

MYSQL中的查询

SELECT count(source), concat(source," - ", destination) as bus_route
FROM booking
GROUP BY source, destination;

正如您所见,有两条记录的计数为1,但Spring数据jpa只返回了一条记录

共有1个答案

古扬
2023-03-14

您的查询返回一个List

实际上,Object[]为每个位置包含另一个Object[],具有两个值:countbus_-route

您可以通过这种方式迭代每个值(我已经测试过了,我需要Bigintger来转换对象值):

Map<BigInteger,String> map = new HashMap<BigInteger,String>();
for(Object object[] : objectList) map.put((BigInteger)object[0], (String)object[1]);

你会得到你想要的地图。

此外,如果可能存在重复值,只创建一个新列表,而不是Map

 类似资料:
  • 我正在使用Hibernate恩维尔斯来审计实体。有可能获得实体的所有版本/修订版,如下所示: 但这需要花费太多时间,因为它将所有表连接在一起(在此示例中为 rev、soup_aud ingredients_aud)。我只需要Soup_AUD的值。 如何使用自定义查询从审计表中选择值? 汤.java: 成分.java:

  • 我们正在使用Apache Phoenix访问HBase数据存储。作为某些需求的一部分,我们需要记录从任何Phoenix客户端发出的每个更新操作,例如写和删除表命令。Phoenix的日志记录是否已经以可解析的格式捕获了这些命令?如果没有,我如何捕捉这些信息?

  • 问题内容: 如何记录django应用程序执行的所有SQL查询? 我想记录所有内容,包括来自管理站点的SQL。我看到了这个问题和一个常见问题解答,但是我仍然不知道应该把它放在哪里 将所有内容记录到一个文件? 所以我的问题是-我应该怎么做才能拥有一个记录所有SQL语句的文件(例如all-sql.log)? 问题答案: 也许看看https://github.com/django-debug-toolba

  • 问题内容: 我有以下代码: 如果只有一个结果(因为我可以回显)就很好了,但是如果有很多结果,如何使它循环遍历并打印每一行? 我敢肯定这确实很简单,但是我不确定我需要在Google中搜索什么。 我正在寻找与之等效的东西: 问题答案: 只需将其替换为or :) 几乎所有功能都有相应的功能。

  • 您好,我正在使用。 }下面是各自的xml: 在适配器获取视图:公共视图getView(int位置,视图转换视图,ViewGroup父){ ImageLoader。从这里开始的Java 在从服务器加载映像之前,如何在中显示临时映像。