Imprimir um array de objetos [Resolvido]

7 respostas
vega

Oi pessoal,

Me deu um branco, estou imprimindo uma lista de varios objetos.
Como faço para puxar os metodos getNome e getDescricao deles ?

DAO:
public Collection<Usuario> ListaUsuario(){
				Session sessao = HibernateUtil.getSession(); 
				return (Collection<Usuario>) sessao.createQuery("from Usuario" ).list();
			}

Teste:
system.out.println(ud.ListaUsuario()) ----> ???????????????????????????

Classe Usuario

[code]
package classes;

import java.util.ArrayList;
import java.util.List;

public class Usuario {
Integer id;
String nome;
String rg;
String cpf;

public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getRg() {
return rg;
}
public void setRg(String rg) {
this.rg = rg;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
// @Override
public String toString() {
return "Usuario [cpf=" + cpf + ", id=" + id + ", nome=" + nome
+ ", rg=" + rg + "]\n";

}

}

7 Respostas

Carlos_ds_jar

Já que vc quer listar os objetos, por que não usa List no lugar de Coletion?

quikkoo
// acesse a lista
Collection<Usuario> lista = x.listaUsuario();
// obs: quando se trata de uma função, costuma-se
// usar a primeira palavra começando em minusculo

// itere sobre a lista , em outras palavras, percorra a lista ultilizando seu iterador
for (Iterator<Usuario> i =  lista.iterator(); i.hasNext(); )
{
	// pegue elemento por elemnto da lista a cada iteração do laço
	Usuario u = i.next();

	// use e abuse
	system.out.println(u.getName());
}

flw, t+

nel

Nossa, iterator nesse caso não né?
Use o foreach e itere sobre o seu Objeto usuário.

simples…

for(Usuario user : suaCollection) {
   user.getNome();
   //e o que mais desejar
}

Ele percorrer elemento a elemento em sua lista e para cada elementro encontrado atribui a variavél user.
Ok?

Abraços.

vega

COntinua imprimindo isso =/

Hibernate: /* from Usuario */ select usuario0_.id as id1_, usuario0_.nome as nome1_, usuario0_.rg as rg1_, usuario0_.cpf as cpf1_ from usuario usuario0_

nel

Como?
Poste o seu código.

quikkoo

que vacilo hein…
isso acontece pq sua entidade é herdada pelo javassit, daí seu getters está sobrescritos

sugestão: crie um construtor de cópia e use uma entidade desanexada

public class Usuario
{
	public Usuario(Usuario u)
	{
		nome = u.nome;
		cpf = u.cpf;
	}
}

...

// o for convencional ou o foreach fica por gosto de fregês
for (Iterator<Usuario> i =  lista.iterator(); i.hasNext(); )
{
	// agora vc terá um pobjeto "puro"
	Usuario u = new Usuario(i.next());
	System.out.println(u.getName());
}

procure pela documentação do hibernate se existe algum recurso q faça isso, quem sabe já possui… mas eu nunca precisei

flw, t+

vega

Oi Pessoal.

Obrigado pela ajuda

Eu testei todos os modos e nao consegui resolver infelizmente.

Deu certo uma gambiarra que eu fiz, trocando o metodo do DAO   de Query select = sessao.createQuery(from Usuario);

para Criteria select = sessao.createCriteria(Usuario.class);

Obrigado a todos
Agora vou tentar achar como faço para listar baseado em um parametro

Criado 9 de setembro de 2010
Ultima resposta 9 de set. de 2010
Respostas 7
Participantes 4