elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Error java.lang.Byte cannot be cast to java.lang.Integer
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error java.lang.Byte cannot be cast to java.lang.Integer  (Leído 741 veces)
S4ms3pi0l__

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Error java.lang.Byte cannot be cast to java.lang.Integer
« en: 24 Agosto 2019, 04:15 am »

Tengo el siguiente error: "java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer" cuando en ninguna parte tengo declarada alguna variable del tipo Byte. Lo mismo sucede con las otras dos líneas siguientes.

Código
  1. private void Cargar4()
  2.    {
  3.        Session s = NewHibernateUtil.getSessionFactory().openSession();
  4.         try
  5.        {  
  6.            Query query =  s.createQuery("select\n" +
  7.                                        "   c.categoryId as idCategoria,\n" +
  8.                                        "   c.name as nombre,\n" +
  9.                                        "   count(*) as Cantidad\n" +
  10.                                        "from Category c\n" +
  11.                                        "inner join c.filmCategories fc\n" +
  12.                                        "group by c.name");
  13.  
  14.            List<Object[]> res = query.list();
  15.            List<PeliculaC> elist = new ArrayList<PeliculaC>();
  16.            Iterator it = res.iterator();
  17.            while(it.hasNext()){
  18.                Object[] line = (Object[]) it.next();
  19.                PeliculaC pc = new PeliculaC();
  20.                pc.setIdCategoria((int) line[0]); //Esta es la línea donde me indica el error
  21.                pc.setNombre((String) line[1]); //java.lang.Long cannot be cast to java.lang.String
  22.                pc.setCantidad((int) line[2]); //java.lang.Byte cannot be cast to java.lang.Integer
  23.                elist.add(pc);
  24.            }
  25.       }catch( Exception io)
  26.        {     JOptionPane.showMessageDialog(null, "Fallo de conexion: "+io.toString());
  27.  
  28.        }finally
  29.        {  
  30.            s.close();    
  31.        }
  32.    }
  33.  

Espero puedan ayudarme.


« Última modificación: 24 Agosto 2019, 04:34 am por S4ms3pi0l__ » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.410


ASMático


Ver Perfil WWW
Re: Error java.lang.Byte cannot be cast to java.lang.Integer
« Respuesta #1 en: 24 Agosto 2019, 18:25 pm »

Si pones un breakpoint o pones algun log antes de los casts, podrias ver el tipo exacto que devuelve cada objeto (line[0], [1] y [2]). Con un line[0].getClass().getName() verías su tipo, y verías si los casts que estás haciendo son correctos o no.

Por otro lado, si miras en la base de datos, también podrías ver si los tipos son los que esperas. ¿Podría ser que "Caregory.caregoryId" sea de tipo BYTE (o el tipo correspondiente en la base de datos que uses)?


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines