terça-feira, 5 de outubro de 2010

Hibernate: Tipos de consultas suportadas pelo Hibernate

Esse pequeno post é destinado aos novatos em Hibernate que geralmente tem dúvidas em relação aos tipos de pesquisa suportados por esse framework. Navegando nos fóruns encontramos vários nomes como (criteria, HQL, SQL Nativo etc.), essa salada de nomes pode complicar o inicio do aprendizado.
O que precisa ficar claro é que todas as opções abaixo são utilizadas para efetuar consultas no banco de dados. Cada uma com suas vantagens/desvantagens em relação às outras.
Esses são os tipos suportados pelo Hibernate:
1.       HQL
2.       JPA QL
3.       SQL Nativo
4.       Criteria
Exemplos simples:
HQL:
Ex1: from Usuario
Retorna todos os objetos da classe Usuario (não é necessário informar select antes do from).
Ex2: select from Usuario as u where u.nome = ‘Alexandre’
Exemplo utilizando apelido (u) e restrição (where).  A palavra chave (as) na definição do apelido é opcional.
JPA QL
Ex1: select from Usuario
Retorna todos os registros da classe Usuario (note que em JPA QL você deve informar select antes do from).
SQL Nativo
Ex1: List list = session.createSQLQuery(“select * from Usuario”)
                                               .addEntity(Usuario.class)
                                               .list();

Criteria
Ex1: List<Usuario> list = session.createCriteria(Usuario.class)
                                               .list();
Retorna todos os registros da classe Usuario.
Ex2: Usuario usuário = session.createCriteria(Usuario.class)
                                               .add(Restrictions.eq(“nome”,”Alexandre”)
                                               .uniqueResult();
Exemplo de consulta utilizando restrição e limitando o retorno a um único objeto.

Nenhum comentário:

Postar um comentário