2017-12-16 5 views
0

Hier ist mein Code unten angegeben Ich bin nicht in der Lage Datensätze aus meiner Transaction-Tabelle zu holen, da es Fehler - java.lang.ClassCastException Ljava.lang.Object anzeigt kann nicht auf com.infotech.model.Transactionjava.lang.ClassCastException: [Ljava.lang.Object; kann nicht in com.infotech.model.Transaction (Klasse) umgewandelt werden

Hilfe mich hinausgeworfen werden, wo ist das Problem Note- Transaktion meiner Klasse ist

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); 
+0

versuchen, diese query1.setResultTransformer (Transformers.aliasToBean (Transaction.class)). List(); anstelle dieser query1.list(). –

Antwort

0

Es muss diese Zeile sein:

List<Transaction> list=query1.list(); 

Sie sollte es zu ändern List<Transaction> list= (List<Transaction>)(List<?>) query1.list();

Java erfordert explizite Typ Casting von abgeleiteten Typen zu Basistypen.

+0

Sorry, aber es hat meinen Fehler nicht behoben –

0

Das Problem hier ist, dass bei Verwendung von Projektionen Hibernate List<Object[]> (nicht List<Transaction>) zurückgibt.

Die einfachste Sache ist die HQL-Abfrage zu ändern, nur um zu überprüfen, ob alles

Query query1 = session.createQuery("from Transaction t where t.user_id=:uid"); 

Bitte lesen Sie diese funktioniert, wenn Sie Projektionen verwenden möchten

SpringBoot+Hibernate+Restful : format response

Verwandte Themen