Buscando dados no banco utilizando Criteria/Hibernate

Pessoal, estou com o seguinte código:

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;


public class ListaUsuarios {

	public static void main(String[] args) {
		try {
			SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
			Session sessao = sf.openSession();
			Transaction tx = sessao.beginTransaction();
			
			
			Criteria query = sessao.createCriteria(Logar.class);
			List<Logar> lista = query.list();
			
			System.out.println(lista);
			
			tx.commit();
			sessao.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
}

Ele roda de boa só que ele está retornando isso como resultado:

e não a lista do que tem dentro da tabela…

Agradeço desde já!

[quote=cajobao]Pessoal, estou com o seguinte código:

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;


public class ListaUsuarios {

	public static void main(String[] args) {
		try {
			SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
			Session sessao = sf.openSession();
			Transaction tx = sessao.beginTransaction();
			
			
			Criteria query = sessao.createCriteria(Logar.class);
			List<Logar> lista = query.list();
			
			System.out.println(lista);
			
			tx.commit();
			sessao.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
}

Ele roda de boa só que ele está retornando isso como resultado:

e não a lista do que tem dentro da tabela…

Agradeço desde já![/quote]
Você sabia que quando você faz System.out.println(casa); ele vai imprimir o método toString da classe?

Esses valores impressos são a referência do objeto na memória.

Pq você não tira um objeto de entro da lista e manda imprimir? Ou melhor, tenta sobrescrever o toString da classe.

Você me apertou sem abraçar brother… Vou tentar desvendar o que me disse
De qualquer forma obrigado.

[quote=Hebert Coelho][quote=cajobao]Pessoal, estou com o seguinte código:

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;


public class ListaUsuarios {

	public static void main(String[] args) {
		try {
			SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
			Session sessao = sf.openSession();
			Transaction tx = sessao.beginTransaction();
			
			
			Criteria query = sessao.createCriteria(Logar.class);
			List<Logar> lista = query.list();
			
			System.out.println(lista);
			
			tx.commit();
			sessao.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
}

Ele roda de boa só que ele está retornando isso como resultado:

e não a lista do que tem dentro da tabela…

Agradeço desde já![/quote]
Você sabia que quando você faz System.out.println(casa); ele vai imprimir o método toString da classe?

Esses valores impressos são a referência do objeto na memória.

Pq você não tira um objeto de entro da lista e manda imprimir? Ou melhor, tenta sobrescrever o toString da classe.[/quote]

Pode me dar um exemplo pratico??? Tentei umas coisas aqui mas nao consegui =/

Se você está usando uma IDE, como Eclipse, Netbeans… use a opção para gerar automaticamente o método toString() na classe Logar.

Está retornando certo agora amigo… Obrigado.
Estou com outra duvida oriunda do mesmo assunto…
Eu inicializei o objeto logar e quando mando imprimir o get ele retorna nulo… Segue código:

import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class ListaUsuarios {
	public static void main(String[] args) {
		try {
			SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
			Session sessao = sf.openSession();
			Transaction tx = sessao.beginTransaction();

			Criteria query = sessao.createCriteria(Logar.class);
			List lista = query.list();
			System.out.println(lista);
			Logar logar = new Logar();
			System.out.println(logar.getUsuario());

		} catch (Exception e) {
			System.out.println(e);
		}
	}
}

na linha 21 ele imprime “Null”.

Está retornando certo agora amigo… Obrigado.
Estou com outra duvida oriunda do mesmo assunto…
Eu inicializei o objeto logar e quando mando imprimir o get ele retorna nulo… Segue código:

import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class ListaUsuarios {
	public static void main(String[] args) {
		try {
			SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
			Session sessao = sf.openSession();
			Transaction tx = sessao.beginTransaction();

			Criteria query = sessao.createCriteria(Logar.class);
			List lista = query.list();
			System.out.println(lista);
			Logar logar = new Logar();
			System.out.println(logar.getUsuario());

		} catch (Exception e) {
			System.out.println(e);
		}
	}
}

na linha 21 ele imprime “Null”.[/quote]

E ta retornando certo, “Null” é conteúdo atual do seu objeto Logar.
Quando você instancia um objeto, ele terá valor “null” em seus atributos até que você insira valores neles.

Está retornando certo agora amigo… Obrigado.
Estou com outra duvida oriunda do mesmo assunto…
Eu inicializei o objeto logar e quando mando imprimir o get ele retorna nulo… Segue código:

import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class ListaUsuarios {
	public static void main(String[] args) {
		try {
			SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
			Session sessao = sf.openSession();
			Transaction tx = sessao.beginTransaction();

			Criteria query = sessao.createCriteria(Logar.class);
			List lista = query.list();
			System.out.println(lista);
			Logar logar = new Logar();
			System.out.println(logar.getUsuario());

		} catch (Exception e) {
			System.out.println(e);
		}
	}
}

na linha 21 ele imprime “Null”.[/quote]

E ta retornando certo, “Null” é conteúdo atual do seu objeto Logar.
Quando você instancia um objeto, ele terá valor “null” em seus atributos até que você insira valores neles.
[/quote]

Mas tecnicamente o hibernate não joga os dados no logar?

Cara não entenda como ofensa, mas você precisa melhorar seu conceitos em Java. É um conselho que te dou.
Você fez apenas:
Logar logar = new Logar();
System.out.println(logar.getUsuario());

Em qual lugar você envolveu nesse objeto alocado na memória?
A questão de dar null não tem nada haver com Hibernate fazer ou não o trabalho dele, mas é conceito básico de Java mesmo.

Igual ao fato do toString que você não sabia por que estava imprimindo aqueles valores estranhos.

É só um conselho, você vai evitar muitos problemas bobos.

Cara não entenda como ofensa, mas você precisa melhorar seu conceitos em Java. É um conselho que te dou.
Você fez apenas:
Logar logar = new Logar();
System.out.println(logar.getUsuario());

Em qual lugar você envolveu nesse objeto alocado na memória?
A questão de dar null não tem nada haver com Hibernate fazer ou não o trabalho dele, mas é conceito básico de Java mesmo.

Igual ao fato do toString que você não sabia por que estava imprimindo aqueles valores estranhos.

É só um conselho, você vai evitar muitos problemas bobos.[/quote]

De boa cara, agradeço vc pela critica… mesmo nao dando uma direção para solução do meu caso…

Eu estou partindo do conceito que o hibernate utiliza o bean para manipular os valores…

Assim como eu insiro os valores em um set e dou um “save” do hibernate e os valores do bean vao para o banco… quando eu crio uma query para buscar no banco ele deveria alocar no bean da mesma forma…

[quote=cajobao]De boa cara, agradeço vc pela critica… mesmo nao dando uma direção para solução do meu caso…

Eu estou partindo do conceito que o hibernate utiliza o bean para manipular os valores…

Assim como eu insiro os valores em um set e dou um “save” do hibernate e os valores do bean vao para o banco… quando eu crio uma query para buscar no banco ele deveria alocar no bean da mesma forma…[/quote]Usando sua afimação: “quando eu crio uma query para buscar no banco ele deveria alocar no bean da mesma forma…” eu volto a te perguntar. No problema que eu citei acima, onde você envolveu o hibernate para ele fazer a injeção dos recursos para você?

[quote=Hebert Coelho][quote=cajobao]De boa cara, agradeço vc pela critica… mesmo nao dando uma direção para solução do meu caso…

Eu estou partindo do conceito que o hibernate utiliza o bean para manipular os valores…

Assim como eu insiro os valores em um set e dou um “save” do hibernate e os valores do bean vao para o banco… quando eu crio uma query para buscar no banco ele deveria alocar no bean da mesma forma…[/quote]Usando sua afimação: “quando eu crio uma query para buscar no banco ele deveria alocar no bean da mesma forma…” eu volto a te perguntar. No problema que eu citei acima, onde você envolveu o hibernate para ele fazer a injeção dos recursos para você?[/quote]

Não faço ideia, por isso estou pedindo ajuda :smiley:

[quote=cajobao][quote=Hebert Coelho][quote=cajobao]De boa cara, agradeço vc pela critica… mesmo nao dando uma direção para solução do meu caso…

Eu estou partindo do conceito que o hibernate utiliza o bean para manipular os valores…

Assim como eu insiro os valores em um set e dou um “save” do hibernate e os valores do bean vao para o banco… quando eu crio uma query para buscar no banco ele deveria alocar no bean da mesma forma…[/quote]Usando sua afimação: “quando eu crio uma query para buscar no banco ele deveria alocar no bean da mesma forma…” eu volto a te perguntar. No problema que eu citei acima, onde você envolveu o hibernate para ele fazer a injeção dos recursos para você?[/quote]

Não faço ideia, por isso estou pedindo ajuda :smiley: [/quote]Por isso eu disse para você reforçar seus conceitos Java.
Bem, como você mesmo já disse, minhas resposta não estão indo para sua dúvida; e realmente não estão.
Era para tentar abrir seus olhos para o fato de que a ferramenta funciona, mas para funcionar corretamente precisa de estudo.
Com o reforço do Java básico você iria entender por que lá está null.

Bem, vou parar de atrapalhar e deixar espaço para alguém que queria te dar a resposta pronta.

Boa sorte.

[quote=Hebert Coelho][quote=cajobao][quote=Hebert Coelho][quote=cajobao]De boa cara, agradeço vc pela critica… mesmo nao dando uma direção para solução do meu caso…

Eu estou partindo do conceito que o hibernate utiliza o bean para manipular os valores…

Assim como eu insiro os valores em um set e dou um “save” do hibernate e os valores do bean vao para o banco… quando eu crio uma query para buscar no banco ele deveria alocar no bean da mesma forma…[/quote]Usando sua afimação: “quando eu crio uma query para buscar no banco ele deveria alocar no bean da mesma forma…” eu volto a te perguntar. No problema que eu citei acima, onde você envolveu o hibernate para ele fazer a injeção dos recursos para você?[/quote]

Não faço ideia, por isso estou pedindo ajuda :smiley: [/quote]Por isso eu disse para você reforçar seus conceitos Java.
Bem, como você mesmo já disse, minhas resposta não estão indo para sua dúvida; e realmente não estão.
Era para tentar abrir seus olhos para o fato de que a ferramenta funciona, mas para funcionar corretamente precisa de estudo.
Com o reforço do Java básico você iria entender por que lá está null.

Bem, vou parar de atrapalhar e deixar espaço para alguém que queria te dar a resposta pronta.

Boa sorte.[/quote]

Vou tirar o hibernate e ver se o problema está no meu java basico… ai quando descobrir volto pra ele então…
De qualquer forma valeu ai… Só por estar respondendo já é importante.

Valeu!