arrays - 如何显示列表?
问题描述
我有一个列表,我想通过 system.out.println() 打印这个列表
我在存储库中的查询是这样的:"
@Query("select groupe, AVG(tauxCharge) from EquilibrageFrequentiel E where
tauxCharge is not null and tauxCharge != '0'"
+ " and base=:base group by groupe")
public List<String> tauxDeChargeParLigne(@Param("base")Long base);"
在我的控制器中,我尝试按 groupe 显示列表组中的每个元素
List<String> tauxDeChargeAssemblage1 = EquilibrageFrequentielService.tauxDeChargeAssemlage(base1);
for (String tauxDeChargeAssemblage : tauxDeChargeAssemblage1)
{
System.out.println(tauxDeChargeAssemblage);
}
我收到以下错误:“java.lang.Double 无法转换为 java.lang.String” 我该怎么做才能显示我的列表?先感谢您。
解决方案
您需要使用投影。如此方便的方法是创建一个 DTO 描述您的查询返回的数据(String
(?)的元组,Integer/Long
):
@Query("select new org.example.MyDTO(groupe, AVG(tauxCharge))"
+ " from EquilibrageFrequentiel E"
+ " where tauxCharge is not null and tauxCharge != '0'"
+ " and base=:base group by groupe")
public List<MyDTO> tauxDeChargeParLigne(@Param("base")Long base);
DTO就像:
package org.example;
@AllArgsConstructor
@Getter
public class MyDTO {
private String groupe; // or whatever is ther data type of your groupe
private Long average;
}
或者,也许您只想要一个groupe
s 列表(假设它是一个字符串),在这种情况下,只需删除 AVG 部分,例如:
@Query("select groupe
+ " from EquilibrageFrequentiel"
+ " E where tauxCharge is not null and tauxCharge != '0'"
+ " and base=:base group by groupe")
public List<String> tauxDeChargeParLigne(@Param("base")Long base);"
推荐阅读
- unix - 从txt中提取文本
- node.js - 如何在nodejs上直接发送消息(twitter)?
- svn - 标签/分支创建
- google-apps-script - 创建一个 Table 对象并稍后附加它
- outlook - 在就地存档邮箱中创建项目时出现格式错误的 ID 错误
- javascript - 使用 getScript 异步加载脚本
- mysql - 使用 python 连接到 Synology 数据库
- ffmpeg - ffmpeg 错误 > av_interleaved_write_frame():设备上没有剩余空间
- c# - Process.Start() 导致未经处理的异常,但并非总是如此
- c# - 如何使用反作弊访问游戏的MainModule?