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.

CRITERIA 1141 cb. upper ( livro .< String > get (" nome "));Código Java 5.59: Colocando os nomes do livros em caixa alta• trim()1 cb. trim ( livro .< String > get (" nome "));Código Java 5.60: Removendo eventuais espaços do início e do final do nome dos livrosOrdenaçãoOs resultados das consultas em Criteria também podem ser ordenados. Para isso, basta utilizarmoso método orderBy()1 CriteriaQuery c = cb. createQuery ( Livro . class );2 Root livro = c. from ( Livro . class );3 c. select ( livro );45 c. orderBy (cb. desc ( livro .< Double > get (" preco ")));Código Java 5.61: Ordenando o resultado de uma consulta em CriteriaSubqueriesAlgumas consultas necessitam de consultas auxiliares. Por exemplo, para encontrar o livro maiscaro cadastrado no banco de dados, devemos criar uma consulta auxiliar para poder <strong>com</strong>parar, doisa dois, os preços dos livros.Uma consulta auxiliar ou uma subquery é criada através do método subquery(). No exemploabaixo, criamos uma consulta e uma sub-consulta para encontrar o livro mais caro.1 CriteriaQuery c = cb. createQuery ( Livro . class );2 Root livro1 = c. from ( Livro . class );3 c. select ( livro1 );45 Subquery subquery = c. subquery ( Livro . class );6 Root livro2 = subquery . from ( Livro . class );7 subquery . select (a2);89 Predicate predicate = cb. greaterThan ( livro2 .< Double > get (" preco "),10 livro1 .< Double > get (" preco "));11 subquery . where ( predicate );1213 Predicate predicate2 = cb.not (cb. exists ( subquery ));14 c. where ( predicate2 );Código Java 5.62: Consulta e sub-consulta para encontrar o livro mais caroExemplos114 www.k19.<strong>com</strong>.br

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

Saved successfully!

Ooh no, something went wrong!