[英][Ljava.lang.Object; cannot be cast to entityClass
当我尝试将实体转换为 DTO 时,我正在使用 JPA 查询获取值并将结果放入列表但在服务类中。我收到错误“Ljava.lang.Object;无法转换为实体类”......我尝试过 forloop、forEach 循环和迭代器出错。 当我尝试获取第一个元素并将其放入 entityclass 对象时,我收到此错误。
List<Dashboard> dashboard = (List<Dashboard>)dashboardRepository.findAll();
System.out.println("AllSolCount Length :------------------------------- "+dashboard.size());
List<DashboardDto> result = new ArrayList<DashboardDto>();
System.out.println("List Elements :----------------------------------- "+dashboard);
/*for(int i=0;i<dashboard.size();i++) {
**Dashboard obj = (Dashboard)dashboard.get(i); //error in this line I get**
DashboardDto dashboardDto = mapToDto(obj, DashboardDto.class, false);
result.add((DashboardDto) dashboardDto);
}
for (Dashboard obj : dashboard){
**DashboardDto dashboardDto = mapToDto(obj, DashboardDto.class, false);// error in this line I get**
result.add((DashboardDto) dashboardDto);
}*/
Iterator itr = dashboard.iterator();
while(itr.hasNext()){
**Dashboard obj = (Dashboard) itr.next(); // error here itself**
}
return result;
双 * 中的行是每个循环弹出错误的行..请给出建议
图像包含结果集,它是实体类对象的列表,但我无法将类型转换为实体类本身
在从数据库检索数据时,我返回的是实体类列表,而不是实体类列表,我得到的是 java 对象列表。所以我假设可能是某些配置或缺少某些东西。
对我来说它是一个自定义查询 @Query(value = "SELECT sol.offering, sol.state ,COUNT(sol.id) FROM Solution sol GROUP BY sol.offering,sol.state") public List findAll();
list() 方法返回List
,您不能像以前那样直接投射它们。
List<Dashboard> dashboard = (List<Dashboard>)dashboardRepository.findAll();
您必须存储在List<Object[]>
并一一迭代List<Object[]>
然后转换为List<Dashboard>
。
List<Object[]> list= (List<Object[]>)dashboardRepository.findAll();
List<Dashboard> mylist=new ArrayList<>();
if(list!=null){
for(Object [] ob:list){
member1=ob[0];
member2=ob[1];
.......
Dashboard db=new Dashboard(menber1,member2...);//or you use setter method for class member initialize.
mylist.add(db);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.