如何显示List <string>?

时间:2019-02-19 13:08:16

标签: arrays string java-ee controller

我有一个列表,我想通过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);"       

在我的控制器中,我尝试按组显示列表组中的每个元素

List<String> tauxDeChargeAssemblage1 = EquilibrageFrequentielService.tauxDeChargeAssemlage(base1);
    for (String tauxDeChargeAssemblage : tauxDeChargeAssemblage1)
    {
        System.out.println(tauxDeChargeAssemblage);
    }

我得到这些错误:“ java.lang.Double无法转换为java.lang.String” 我该怎么做才能显示我的清单?预先谢谢你。

1 个答案:

答案 0 :(得分:0)

您需要使用投影。如此方便的方法是创建一个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列表(假设它是一个字符串),在这种情况下,只需删除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);"