如何在java中向类添加命名查询结果

如何在java中向类添加命名查询结果,java,hibernate,Java,Hibernate,我有一个命名查询,它会生成一个列表列表。我试图将该数据存储到一个类(dto)中,同时我得到一个异常“[err]java.lang.ClassCastException:[Ljava.lang.Object;无法转换为java.util.List”。下面是我正在使用的代码 public List<CapFutureFteForecastDto> getresults() { List<resultsDto> resultListDto = new ArrayList

我有一个命名查询,它会生成一个列表列表。我试图将该数据存储到一个类(dto)中,同时我得到一个异常“[err]java.lang.ClassCastException:[Ljava.lang.Object;无法转换为java.util.List”。下面是我正在使用的代码

public List<CapFutureFteForecastDto> getresults() {
    List<resultsDto> resultListDto = new ArrayList<>();
    Query query = getSession().getNamedQuery("getresults");
    List<List<Object>> result = query.list();
    List<Float> monthsDataList = new ArrayList<>();
    for(int i=0; i<result.size();i++){
        List<Object> result1 = (List<Object>) result.get(i);
        for(int index = 1; index < result1.size(); index++){
            monthsDataList.add((Float)(result1.get(index)));
        }
    resultListDto.get(i).setName((String)result1.get(0));
    resultListDto.get(i).setMonthsData(monthsDataList);
    result1.clear();
    monthsDataList.clear();
    }
    return resultListDto;
}
我在收到“java.lang.ClassCastException:[Ljava.lang.Object;无法转换为java.util.List”异常

List<Object> result1 = (List<Object>) result.get(i);
List result1=(List)result.get(i);
不知道我哪里做错了。你能告诉我上面的代码有什么问题吗

提前感谢。

result.get(i)
是一个对象数组(不是列表),您需要这样声明:

Object[] result1 = (Object[]) result.get(i);
您还需要更改
结果的类型

List<Object[]> result = query.list();
List result=query.List();

但通过上述更改,它给了我java.lang.ClassCastException:java.math.BigDecimal不能在monthsDataList.add((Float)(result1[index])转换为java.lang.Float;这意味着result1[index]是一个BigDecimal,而不是一个Float。您需要将其转换为BigDecimal,然后将其转换为Float
(BigDecimal)result1[index]).floatValue()
Object[] result1 = (Object[]) result.get(i);
List<Object[]> result = query.list();