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 84Operador NEWPara contornar a dificuldade de lidar <strong>com</strong> o posicionamento dos dados nos arrays, podemos criaruma classe para modelar o resultado da nossa consulta e aplicar o operador NEW no código JPQL.1 package resultado ;23 class FuncionarioDepartamento {4 private String funcionarioNome ;5 private String departamentoNome ;67 public FuncionarioDepartamento ( String funcionarioNome , String departamentoNome ) {8 this . funcionarioNome = funcionarioNome ;9 this . departamentoNome = departamentoNome ;10 }1112 // GETTERS E SETTERS13 }Código Java 4.29: FuncionarioDepartamento.java1 String query = " SELECT NEW resultado . FuncionarioDepartamento (f.nome ,2 f. departamento . nome ) FROM Funcionario f";34 Query < FuncionarioDepartamento > query = manager . createQuery ( query );56 List < FuncionarioDepartamento > resultados = query . getResultList ();78 for ( FuncionarioDepartamento resultado : resultados ) {9 System . out . println (" Funcionário : " + resultado . getFuncionarioNome ());10 System . out . println (" Departamento : " + resultado . getDepartamentoNome ());11 }A vantagem da utilização de uma classe para modelar o resultado de uma consulta <strong>com</strong>plexa aoinvés de um array de Object é que a aplicação não precisa lidar <strong>com</strong> o posicionamento dos itens doresultado.ImportanteA classe que modela o resultado <strong>com</strong>plexo esperado de uma consulta deve possuir umconstrutor para receber os dados do resultado.ImportantePara utilizar uma classe que modela o resultado de uma consulta <strong>com</strong>plexa dentro docódigo JPQL <strong>com</strong> o operador NEW, devemos indicar o nome <strong>com</strong>pleto da classe (fullyqualified name).Exercícios de Fixação11 Teste o recurso de Typed Query utilizando a Named Query Autor.findAll. Adicione no pacotebr.<strong>com</strong>.k19.testes do projeto K19-JPQL a seguinte classe:1 public class TesteTypedQuery {84 www.k19.<strong>com</strong>.br

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

Saved successfully!

Ooh no, something went wrong!