Arquivos

Archive for the ‘Criteria’ Category

Ótima fonte para aprender Hibernate

Ei pessoal, se você quer uma ótima fonte para aprender Hibernate, aqui está:

http://www.roseindia.net/hibernate/index.shtml

Enjoy!

Hibernate: HQL x Criteria

É muito comum em entrevistas perguntarem as diferenças entre HQL e Criteria, ambos relacionados com Hibernate. Para quem não sabe, HQL quer dizer Hibernate Query Language.

O HQL é mais próximo do SQL, é mais utilizado para consultas fixas, que não tem alterações no número de parâmetros necessários.

O Criteria é mais voltado para consultas onde o número de parâmetros não é conhecido, como em listagens que contém N filtros, neste caso o Criteria é mais recomendado por montar uma instrução mais direcionada para a busca em questão, sem adicionar campos ou parâmetros desnecessários, o que acaba agilizando a consulta na base de dados.

O Criteria oferece ainda N métodos e parâmetros para realmente fazermos uma busca bem poderosa e personalizada.

Um exemplo de uso de criteria é este abaixo, onde já temos uma classe CIDADE mapeada no Hibernate:

Criteria c = getSession().createCriteria(Cidades.class); // criando o criteria para a classe cidade
c.add( Restrictions.eq(“estado.uf”, “SP”) ); // fazendo um filtro, no caso, onde estado == SP
List cidadesDeSaoPaulo = c.list(); // retornando a listagem – Fácil né?

O mais interessante ainda é que criteria tem vários métodos que podem nos auxiliar com as querys, por exemplo, trazer ordenado por descrição:

c.addOrder( Order.asc(“descricao”) );

Para setar a quantidade máxima de resultados, usamos o setMaxResults:

crit.setMaxResults(15);

Referências:

Mais sobre criteria pode ser obtido aqui.
Vários exemplos de consultas podem ser obtidas aqui.
Mais sobre HQL aqui.

Enjoy!

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 151 outros seguidores