Problema com hibernate

6 respostas
CarlosEduardoDantas

Tenho uma classe Autor mapeada no hibernate com os campos nome,email.

session.beginTransaction();
Query q = session.createQuery("select nome,email from Autor"); 			
List l = q.list();			
			   
 for (int i = 0; i < l.size();i++) {
	  Autor x = (Autor) l.get(i);
 	  JOptionPane.showMessageDialog(null,x.getNome());
  }			   			
			   
   session.getTransaction().commit();

pelo que vi no código, a variável local l recebe o resultado da query… só que Autor nao consegue receber o conteúdo de l e o erro acontece nesse x.getNome()

alguem pode ajudar?

6 Respostas

luis.soares

Poste a mensagem de erro.

rodrigo_gomes

Olá,

Se você colocar sua query assim não funciona?

Query q = session.createQuery("from Autor autor");
CarlosEduardoDantas

o erro é:

java.lang.Class.CastException:[Ljava.lang.Object;

:cry:

CarlosEduardoDantas

se eu colocar

Query q = session.createQuery("from Autor autor");

Dá o erro:

org.hibernate.InstantiationException: No default constructor for entity: Estrutura.Autor

rodrigo_gomes

Se vc quiser que o Hibernate crie os objetos pra vc, deverá criar um contrutor default pra sua classe Autor.
algo como

public Autor(){}

"The no-argument constructor is required to instantiate an object of this class"
http://www.hibernate.org/hib_docs/v3/reference/en/html/tutorial.html

[]´s
Rodrigo

CarlosEduardoDantas

cara… criei o construtor padrão

ai fiz um

Criteria select = session.createCriteria(Autor.class);

List l = select.list();
			   
			   for (int i = 0; i < l.size();i++) {
				  Autor x = (Autor) l.get(i);
				  autores.add(x.toVector());
			   }

deu certinho… obrigado

Criado 16 de novembro de 2006
Ultima resposta 16 de nov. de 2006
Respostas 6
Participantes 3