Criteria.list() não faz cast para java.util.List?

6 respostas
dahenz

Pessoal, olhei vários posts com esse problema, e segui os passos corretamente para fazer esse simples código, mas o erro continua e eu estou me debatendo, alguém poderia me ajudar???

Segue o código abaixo:

public List<Evento> listarEventos(){
				
		Criteria criteria = this.session.createCriteria(Evento.class);			
		List<Evento> eventos = (List<Evento>)criteria.list();
		
		return eventos;
		
	}

chamando o método DAO

public static void main(String[] args) {

		Session session = MySQLDAOFactory.getSession();
		EventoDAO eventoDAO = new EventoDAO(session);
				
		List<Evento> eventos = new ArrayList<Evento>();
		eventos = eventoDAO.listarEventos();
				
		System.out.println(((Evento)eventos).getDescricao());
	}

Quando vou listar as descrições no meu console, dá o seguinte erro:

Exception in thread “main” java.lang.ClassCastException: java.util.ArrayList cannot be cast to br.com.eucatur.bean.Evento
at br.com.eucatur.Execute.main(Execute.java:22)

O que pode ser???

6 Respostas

rdgms

Aew !!! Tenta fazer assim…

dahenz

Cara… o mesmo erro!! será que o problema nao esta no bean???

da uma olhada!!!

package br.com.eucatur.bean;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Evento {
	
	@Id @GeneratedValue
	private int id;	
	private String descricao;	
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}	

}
lcegatti

Seu erro na verdade está aqui:

System.out.println(((Evento)eventos).getDescricao());

Você está tentando dar um cast da classe Evento na lista eventos, o certo seria vc pegar alguma posição de sua lista, por exemplo:

System.out.println(eventos.get(0).getDescricao());

Ve se rola.

[]'s

rdgms

O bean esta certo
esse seu main esta completo?
vc conseguiu fazer alguma coisa funcionar com hibernate?

dahenz

Funcionou!!! Valew Icegatti!!!

Sim rdgms, tudo funcionando… agora posso dar sequência!!!

Valew a todos…

marcio.rga

lcegatti:
Seu erro na verdade está aqui:

System.out.println(((Evento)eventos).getDescricao());

Você está tentando dar um cast da classe Evento na lista eventos, o certo seria vc pegar alguma posição de sua lista, por exemplo:

System.out.println(eventos.get(0).getDescricao());

Ve se rola.

[]'s

Criado 4 de novembro de 2008
Ultima resposta 4 de nov. de 2008
Respostas 6
Participantes 4