11.07.2015 Views

Persistência com JPA2 e Hibernate - Inpi

Persistência com JPA2 e Hibernate - Inpi

Persistência com JPA2 e Hibernate - Inpi

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

JPQL 88PaginaçãoSupondo que exista uma grande quantidade de livros cadastrados no banco de dados, buscartodos os livros sem nenhum filtro vai sobrecarregar o tráfego da rede e a memória utilizada pela aplicação.Nesses casos, podemos aplicar o conceito de paginação para obter os livros aos poucos. Apaginação do resultado de uma consulta é realizada através dos métodos setFirstResult() e setMax-Results().1 TypedQuery query = manager . createQuery (" select livro from Livro livro ", Livro .←class );2 query . setFirstResult (10) ;3 query . setMaxResults (20) ;4 List livros = query . getResultList ();Código Java 4.40: Definindo a paginação do resultado da consultaExercícios de Fixação19 Teste o recurso de paginação das consultas. Adicione a seguinte classe no pacote br.<strong>com</strong>.k19.testesdo projeto K19-JPQL.1 public class TesteBuscaPaginada {2 public static void main ( String [] args ) {3 EntityManagerFactory factory = Persistence4 . createEntityManagerFactory (" K21_jpql_pu ");5 EntityManager manager = factory . createEntityManager ();67 TypedQuery query = manager . createQuery (" select livro from Livro livro ",8 Livro . class );910 query . setFirstResult (2) ;11 query . setMaxResults (3) ;12 List livros = query . getResultList ();1314 for ( Livro livro : livros ) {15 System . out . println (" Livro : " + livro . getNome ());16 }1718 manager . close ();19 factory . close ();20 }21 }Código Java 4.41: TesteBuscaPaginada.javaO Problema do N + 1Em alguns casos, o <strong>com</strong>portamento LAZY pode gerar um número excessivo de consultas, <strong>com</strong>prometendoo desempenho da aplicação. Por exemplo, considere as entidades Departamento eFuncionario.1 @Entity2 public class Funcionario {388 www.k19.<strong>com</strong>.br

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!