Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate java.lang.ClassCastException:[Ljava.lang.Object;无法强制转换为com.infotech.model.Transaction(类)_Hibernate_Spring Mvc - Fatal编程技术网

Hibernate 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

下面是我的代码,我无法从事务表中获取记录,因为它显示错误--java.lang.ClassCastException Ljava.lang.Object无法转换为com.infotech.model.Transaction

帮我找出问题出在哪里 注意-事务是我的类

 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()。