Hibernate java.lang.ClassCastException:[Ljava.lang.Object;无法强制转换为com.infotech.model.Transaction(类)
下面是我的代码,我无法从事务表中获取记录,因为它显示错误--java.lang.ClassCastException Ljava.lang.Object无法转换为com.infotech.model.Transaction 帮我找出问题出在哪里 注意-事务是我的类Hibernate java.lang.ClassCastException:[Ljava.lang.Object;无法强制转换为com.infotech.model.Transaction(类),hibernate,spring-mvc,Hibernate,Spring Mvc,下面是我的代码,我无法从事务表中获取记录,因为它显示错误--java.lang.ClassCastException Ljava.lang.Object无法转换为com.infotech.model.Transaction 帮我找出问题出在哪里 注意-事务是我的类 ArrayList<Transaction> arr1 = null; Transaction tt1=null; try{ SessionFactory sessionfac
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);
ArrayList arr1=null;
事务tt1=null;
试一试{
SessionFactory SessionFactory=新配置().configure().buildSessionFactory();
Session Session=sessionfactory.openSession();
session=sessionfactory.openSession();
session.beginTransaction();
int uid=search.getUser_id();
Query query1=session.createQuery(“从事务t中选择A_编号、日期、类型、B_id,其中t.user_id=:uid”);
query1.setInteger(“uid”,uid);
List=query1.List();
迭代器itr1=list.Iterator();
arr1=新的ArrayList();
while(itr1.hasNext())
{
tt1=itr1.next();
arr1.add(tt1);
System.out.println(tt1.getA_no()+“\t”+tt1.getB_id());
}
}catch(异常ex){ex.printStackTrace();}
ModelAndView m=新的ModelAndView(“表单搜索”、“数据”,tt);
m、 addObject(“复制”,arr1);
必须是这一行:
List<Transaction> list=query1.list();
List List=query1.List();
您应该将其更改为List=(List)(List)query1.List();
Java要求显式类型转换从派生类型转换为基类型。这里的问题是,当您使用投影时,Hibernate返回
列表
(而不是列表
)
最简单的事情是更改HQL查询,只是检查一切是否正常
Query query1 = session.createQuery("from Transaction t where t.user_id=:uid");
如果你想使用投影,请阅读这个
尝试使用此查询1.setResultTransformer(Transformers.aliasToBean(Transaction.class)).list();而不是此查询1.list()。