Listar com Hibernate Annotations

Galera não estou conseguindo fazer listar dados do banco usando hibernate

Meu metodo persistencia para listar

public List listar(Class clazz) throws Exception
    {
        Session session = HibernateFactory.getSession();
        Transaction transaction = session.beginTransaction();

        List objts;
        objts = null;
        Criteria selectAll = session.createCriteria(clazz);
        transaction.commit();
        objts = selectAll.list();
        session.close();
        return objts;
    }

Minha classe que lista os dados

public static void main(String args[]) throws Exception{
		
	               PersistenciaDAO persiste = new PersistenciaDAO();
					
		persiste.listar(Clientes.class);
		
		System.out.println("Cliente: "+persiste.listar(Clientes.class));
				
	}

Saida no console

Cliente: [clientes.bean.Clientes@6c585a, clientes.bean.Clientes@11ca803]

No banco tenho dois itens, porque nao esta listando os dois itens e sim o nome da classe duas vezes?

Seu método está funcionando, vc precisa pegar a lista e mostrar os valores

[code]
public static void main(String args[]) throws Exception{
PersistenciaDAO persiste = new PersistenciaDAO();
java.util.List lista = persiste.listar(Clientes.class);

for (Clientes cli:lista){
System.out.println("Cliente: "+ cli.getNome() ); //coloque aqui o método que vc quiser de clientes
}

}[/code]

Deus… perdoe essa pobre criatura…

Bem, como conselho, tenho a dizer para você estudar mais a base do Java, antes de começar a querer utilizar frameworks e outras coisas mais.

Para solução do seu “problema”, o que está aconteçendo no seu código é que você está querendo exibir um Objeto, do tipo “Clientes”, o Java não sabe que quando você diz “exiba clientes”, você na verdade está querendo dizer “exiba a lista de clientes, recuperando apenas o atributo nome em cada objeto”.

Ou seja… armazene o retorno da chamada de seu “listar”, faça um “for”, e para cada objeto da lista retornada, realize o “System.out.println” repassando a chamada do seu método “get” do objeto.

Exemplo:

PersistenciaDAO persiste = new PersistenciaDAO();   
                       
List objs = persiste.listar(Clientes.class); 

for (Object obj : objs) {
   Clientes clientes = (Clientes) obj;
   System.out.println(clientes.getNome());
}

Sakou??

Outra coisa também em seu código é que você esta chamando o método “listar” duas vezes, não sei se percebeu… E um objeto de valor, não deve ter um nome no plural, o plural dele é automáticamente associado quando se tem uma coleção daquilo, exemplo:

Objeto que armazena as informações dos clientes, tem como nome: Cliente
E não “Clientes” só porque na base de dados tem mais que um.
Esse “s” no final, fica sub-entendido quando você tem: Cliente[], ou, Collection, ou, List ,…

Boa sorte.

[quote]Deus… perdoe essa pobre criatura…

Bem, como conselho, tenho a dizer para você estudar mais a base do Java, antes de começar a querer utilizar frameworks e outras coisas mais. [/quote]

É ridiculo ver uma pessoa arrogante e de ma indole dizer isto para uma outra pessoa.
Velho, só tenho a dizer que tu aqui no forum não é mais que ninguém, deixa o cara estudar os frameworks que ele bem enteder, pois o forum foi criado com o intuito de agregar informação, se tu tem um informação que possa favorecer outro tu posta mas se tu não tem, não venha citar coisas que venham a ofender outros usuario.

Não sei qual foi o intuito do seu post. Mas agiu de extrema arrogancia.

Sem mais

Valeu!!! “mduques” consegui fazer funcionar

[quote]
victor.godinho

Deus… perdoe essa pobre criatura…

Bem, como conselho, tenho a dizer para você estudar mais a base do Java, antes de começar a querer utilizar frameworks e outras coisas mais. [/quote]

Responda se for ajudar e se for para acrescentar conhecimentos a quem esta quebrando a cabeca ou por mais tosca que seja a pergunta as vezes não vemos o erro que está em nossa frente, sem mais palavras