Problema simples com hibernate

3 respostas
caio_sope

Galera.

Estou querendo fazer uma simples busca com o hibernate.
Trata-se de buscar todos os cadastros de uma tabela.

Tentei algo do tipo:

teste = session.get(Tabela.class);

Mais não rolou.

Tentei tb criar uma query normal:

teste = session.createQuery("SELECT * FROM Tabela");

Mas tb não foi.

Como posso fazer esta busca?

Valeu!

3 Respostas

Arizoide

caio_sope:
Galera.

Estou querendo fazer uma simples busca com o hibernate.
Trata-se de buscar todos os cadastros de uma tabela.

Tentei algo do tipo:

teste = session.get(Tabela.class);

Mais não rolou.

Tentei tb criar uma query normal:

teste = session.createQuery("SELECT * FROM Tabela");

Mas tb não foi.

Como posso fazer esta busca?

Valeu!

Session sessao = null; Transaction tx = null; try { sessao = HibernateUtil.getSession(); tx = sessao.beginTransaction(); Query q = sessao.getNamedQuery("Versao.listarTodos"); List<Versao> lista = q.list(); tx.commit(); return lista; } catch (Exception ex) { tx.rollback(); ex.printStackTrace(); return null; } finally { if (sessao != null) { try { sessao.close(); } catch (Exception e) { e.printStackTrace(); } } }

Esse código executa a query “Versao.listarTodos” que me retorna todos os itens da tabela Versao. Essa query foi adicionada a classe Versao na seguinte forma:

@NamedQueries (value = { @NamedQuery(name = "Versao.listarTodos", query = "from Versao order by id asc"), @NamedQuery(name = "Versao.listarUltimaAtualizacao", query = "from Versao where id = :id"), @NamedQuery(name = "Versao.listarVersaoPorPessoa", query = "from Versao where pessoaAtualizacao = :pessoa order by id asc"), } )

com o primeiro jeito que vc tentou, ele retorna a busca apenas se a vc buscar pela chave primaria, e teria que passar a PK como o sgeundo argumento da linha.

Espero ter ajudado.

calel

Só pra documentar, a sua primeira busca caio deveria ser assim.

Criteria c = session.createCriteria(Tabela.class);
List<Tabela> lista = c.list();

para usar queries normais (SQL) você deve utilizar o SQLQuery, o método Query deve ser utilizado com HQL.

caio_sope

Testei e funcionou sim.
Valeu cara! Não conhecia estas named queries.

Criado 25 de julho de 2011
Ultima resposta 25 de jul. de 2011
Respostas 3
Participantes 3