首页 > 解决方案 > 获取 java.lang.ClassCastException:java.lang.Integer 无法转换为 [Ljava.lang.Object 错误

问题描述

    cq.multiselect(selected_columns);
    cq.where(final_selection);

    List<Object[]> result = em.createQuery(cq).getResultList();

    List<Map<String,Object>> final_result = new ArrayList<>();

    for(int i = 0 ; i < result.size() ; i++)
    {
        Map<String,Object> temp = new HashMap<>();

        for(int j = 0 ; j < result.get(i).length ; j++)
            temp.put("student_"+selected.get(j), result.get(i)[j]);

        final_result.add(temp);
    }

当结果列表中的 Object 数组的长度为 1 时,此result.get(i).length会生成此错误java.lang.ClassCastException: java.lang.Integer cannot be cast to [Ljava.lang.Object

选定的列列表包含我需要选择的列名。谁能帮我这个?提前致谢。

标签: javajpacriteria-api

解决方案


当您选择一个项目时,您只会得到该项目。它没有嵌入到大小为 1 的数组中。


推荐阅读