Post

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...

By ciclosw O assunto pode não ser novidade, mas é bastante proveitoso. A interface Hibernate serve de camada de mediação entre a base de dados e o código de alto nível da aplicação. Uma das formas de consulta que o Hibernate disponibiliza, além do SQL Nativo e HQL, é o Criteria. Cada uma delas deve ser utilizada para um propósito específico.
Acredito, que, para melhor desempenho das consultas realizada pela aplicação (já mapeada, contendo objetos bem estruturados) elas devem ser escritas nesta sequência de exclusão: 1) criteria 2) hql 3) nativo. Sendo que cada qual deve ser considerada, em relação à outra, por benefícios que apresente ou até mesmo possibilidade de acesso a uma tarefa específica (ex.: em alguns casos, só ó possível realizar busca por colletions complexos com hql ou sql nativo).
Ao criar um script de consulta através do criteria, os objetos disponíveis no ambiente do projeto podem ser utilizados e reuso da consulta também é facilitado. Vejamos algumas das características que permeiam a escrita de uma operação de consulta através do Criteria:
Instância: Para criar um scrpit criteria é necessário utilizar as classes Criteria ou DetachedCriteria do Hibernate. A segunda opção deve ser utilizada quando se quer realizar uma operação na Sessão corrente do sistema, ou seja, sem que esteja imposta a criação de um novo atributo Session na página/módulo/tela em questão. Lembrando que, segundo documentação oficial: “a Sessão é uma fábrica para instâncias de Criteria“.
criação criteria
Restrições de consulta: As classes Criteria disponibilizam uma série de Restrictions e desta forma é possível informar condições à consulta realizada. Exemplos são: Rectrictions.eq, que avalia a igualdade do valor de um atributo com um resultado esperado; Restrictions.ilike, utilizado para comparar partículas de um valor texto, ex.: String contendo nome de uma pessoa; Restrictions.in, que avalia um conjunto de valores; e assim por diante.
Restrições do Criteria
Ordenação: A ordenação crescente ou decrescente pode ser conseguida a partir do comando addOrder. O nome da propriedade pode ser passado diretamente ou através de um Property.
Ordenação por elemento Property
Associações: A relação entre as tabelas também pode ser especificada em uma consulta por Criteria. Isso pode ser alcançada através das Restrictions, ou, mais claramente, pelo comando explicíto de Junção, o createAlias. Esse comando possibilita a criação das junções de Inner, Left, Right e Full Join.
Junção por creatAlias
A consulta por Criteria aumenta a produtividade do desenvolvedor, por tornar a consulta mais fácil, legível e objetiva para ele. Assim como torna a consulta mais segura, pois o código já não manipula uma String Sql. A ação de utilizar consulta por Criteria também retira do desenvolvedor/arquiteto/projetista a responsabilidade de conhecer todos comandos SQL e particularidades que cada base dados apresenta (comandos específicos), delegando ao Hibernate a tarefa de criar a query nativa a partir da manipulação dos objetos vigentes no projeto. Desta forma, depois de mapeadas as tabelas da base no projeto, já não é necessário recorrer à estrutura interna da base de dados para nomear cada variável ou realizar associações entre elas.
Os conceitos apresentados neste post são apenas mecanismos básicos da consulta por Criteria. Se explorado, esse tema pode apresentar um mundo à parte.
Referências:
http://docs.jboss.org/hibernate/orm/3.5/reference/pt-BR/html/querycriteria.html
http://www.devmedia.com.br/hibernate-api-criteria-realizando-consultas/29627
https://www.ibm.com/developerworks/community/blogs/fd26864d-cb41-49cf-b719-d89c6b072893/entry/criteria_hibernate_na_pr_C3_A1tica?lang=en

Source:: http://ciclosw.wordpress.com/2014/09/23/pesquisa-por-criteria/

Você também pode querer ler

Comments are off for this post.