Text of 1 Criando e executando consultas Formas de criar consultas
Slide 1
1 Criando e executando consultas Formas de criar consultas
Slide 2
2 Formas de consultas Hibernate Query Language (HQL), e um
subconjunto do padro JPA QL (Java Persistence API Query Language :
session.createQuery("from Category c where c.name like 'Laptop%'");
entityManager.createQuery("select c from Category c where c.name
like 'Laptop%' ); Criteria API para consulta por critrio (QBC) e
consulta por exemplo (QBE):
session.createCriteria(Category.class).add(
Restrictions.like("name", "Laptop%") ); SQL direto com ou sem
mapeamento automtico do resultsets para objeto.
session.createSQLQuery( "select {c.*} from CATEGORY {c} where NAME
like 'Laptop%'").addEntity("c", Category.class);
Slide 3
3 Preparando uma consulta As interfaces org.hibernate.Query e
org.hibernate.Criteria possuem inmeros mtodos para controlar a
execuo de uma consulta. Query prov mtodos para atribuir valores
para parmetros de consulta. Para executar uma consulta em uma
aplicao necessrio obter uma instncia de uma destas interfaces
utilizando a Session. Query hqlQuery = session.createQuery("from
Event");
Slide 4
4 Associao Uma associao liga as tabelas de duas classes atravs
de uma chave estrangeira sem intervenso nas tabelas. Este
mapeamento perde certa semntica para uma coleo normal Java: Uma
instncia que contem uma classe entidade no pode pertencer a mais de
uma instncia de coleo. Uma instncia que contem uma classe entidade
no pode aparecer em mais de um valor de um ndice de coleo. Uma
associao de Estados e Municpios requer a existncia de uma coluna de
chave estrangeira e a possibilidade de uma coluna ndice para a
tabela Municpios.
Slide 5 class (obrigatri"> class (obrigatrio): O nome da
classe associada not-found (opcional): Especifica como colocar em
cache identificadores que referenciam as linhas inexistentes devem
ser manipuladas. ignore tratar uma linha inexistente como uma
associao nula. entity-name (opcional): O nome da entidade classe
associada, como uma classe alternativa."> class (obrigatri"
title="5 class (obrigatri">
5 class (obrigatrio): O nome da classe associada not-found
(opcional): Especifica como colocar em cache identificadores que
referenciam as linhas inexistentes devem ser manipuladas. ignore
tratar uma linha inexistente como uma associao nula. entity-name
(opcional): O nome da entidade classe associada, como uma classe
alternativa.
Slide 6 "> "> " title="6 Exemplo ">
6 Exemplo
Slide 7
7 Limitando a quantidade de respostas Query consulta =
session.createQuery("from Estado order by sigla asc");
consulta.setMaxResults(10); Apresenta um conjunto com 10
elementos
Slide 8
8 Utiliza SQL e limitador Query consulta =
session.createSQLQuery("select {e.*} from estados {e} order by
{e.sigla}"). addEntity("e",Estado.class);
consulta.setFirstResult(5); consulta.setMaxResults(10); Utiliza
expresso SQL. Inicia o resultado no quinto elemento e apresenta 10
registros.