[Ljava.lang.Object;不能转换为 ''

[Ljava.lang.Object; cannot be cast to ''

我试图在目录中找到重复的电影。

在目录中我有电影的 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]

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

如果你想要 Movie 个对象你应该 SELECT m.movie ...