java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.infotech.model.Transaction(class)
这是下面提供的代码,由于显示错误,我无法从我的Transaction表中获取记录--java.lang.ClassCastException Ljava.lang.Object无法转换为com.infotech.model.Transaction <铅>
帮我解决问题出在哪里
注意-交易是我的课程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | ArrayList<Transaction> arr1 = null; Transaction tt1=null; try{ SessionFactory sessionfactory = new Configuration().configure().buildSessionFactory(); Session session = sessionfactory.openSession(); session= sessionfactory.openSession(); session.beginTransaction(); int uid = search.getUser_id(); Query query1=session.createQuery("select A_no, date, type, B_id from Transaction t where t.user_id=:uid"); query1.setInteger("uid", uid); List<Transaction> list=query1.list(); Iterator<Transaction> itr1=list.iterator(); arr1=new ArrayList<Transaction>(); while(itr1.hasNext()) { tt1=itr1.next(); arr1.add(tt1); System.out.println(tt1.getA_no()+"\\t"+tt1.getB_id()); } }catch(Exception ex){ex.printStackTrace();} ModelAndView m=new ModelAndView("form-search","data",tt); m.addObject("copy", arr1); |
这里的问题是,当您使用投影时,Hibernate返回
最简单的方法是更改??HQL查询,只是检查是否一切正常
1 | Query query1 = session.createQuery("from Transaction t where t.user_id=:uid"); |
如果要使用投影,请阅读此内容
SpringBoot Hibernate Restful:格式响应
必须是这一行:
1 | List<Transaction> list=query1.list(); |
您应该将其更改为
Java需要从派生类型到基本类型的显式类型转换。