of 33 /33
1 Criando e executando consultas Formas de criar consultas

1 Criando e executando consultas Formas de criar consultas

Embed Size (px)

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.
  • Slide 9