hibernate - [Ljava.lang.Object; 不能转换为 ''
问题描述
我试图在目录中找到重复的电影。
在目录中,我有电影的 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]
解决方案
该错误是因为您将方法返回类型声明为List<Movie>
但事实上您正在查询List<Object[]>
. 这是因为在您的SELECT
子句中您指定了m.movie.id, count(m.movie.id)
.
如果你想要Movie
对象,你应该SELECT m.movie
......