[Ljava.lang.Object;无法转换为“

时间:2018-10-19 17:42:17

标签: hibernate hql

我正尝试将重复的电影放到目录中。

在目录中,我有电影的ID。

CatalogDaoImpl.class

@SuppressWarnings({ "unchecked" })
    @Override
    @Transactional
    public List<Movie> findMovies() {
        String query = "SELECT m.movie.id, count(m.movie.id)"
                + " from Catalog m group by m.movie.id"
                + " order by count(m.movie.id)";
        List<Movie> movies = getSession().createQuery(query).getResultList();

        return movies;
    }

当我尝试使用此dao时,出现下一个错误:

[Request processing failed; nested exception is java.lang.ClassCastException: 
[Ljava.lang.Object; cannot be cast to com.myapp.entities.Movie]

1 个答案:

答案 0 :(得分:0)

错误是因为您声明方法的返回类型为List<Movie>,但实际上您正在查询List<Object[]>的列表。这是因为在您的SELECT子句中指定了m.movie.id, count(m.movie.id)

如果您想要Movie对象,则应该SELECT m.movie ...