• Nenhum resultado encontrado

Casa do Código Livros para o programador Rua Vergueiro, º andar Vila Mariana São Paulo SP Brasil

N/A
N/A
Protected

Academic year: 2021

Share "Casa do Código Livros para o programador Rua Vergueiro, º andar Vila Mariana São Paulo SP Brasil"

Copied!
13
0
0

Texto

(1)
(2)

© Casa do Código

Todos os direitos reservados e protegidos pela Lei nº9.610, de 10/02/1998. Nenhuma parte deste livro poderá ser reproduzida, nem transmitida, sem auto-rização prévia por escrito da editora, sejam quais forem os meios: fotográficos, eletrônicos, mecânicos, gravação ou quaisquer outros.

Casa do Código Livros para o programador Rua Vergueiro, 3185 - 8º andar

(3)
(4)
(5)

Casa do Código

Sobre o autor

Hébert Coelho de Oliveira é analista desenvolvedor sênior, pós-graduado em Enge-nharia de So�ware, professor em faculdade e escritor nas horas vagas. Trabalha há mais de �� anos com desenvolvimento de so�wares e possui as certi�cações SCJP, SCWCD, OCBCD, OCJPAD.

É autor do livro JSF E�caz, publicado pela editora Casa do Código, que dá dicas e melhores práticas para os desenvolvedores que utilizam o JSF em seus projetos.

É criador do bloghttp://uaiHebert.com, visualizado por ��� países, totalizando mais de ��� mil visualizações em seus � anos de vida. É ainda autor do framework EasyCriteria (http://easycriteria.uaihebert.com) que ajuda na utilização da Criteria da JPA, sendo testado com Hibernate, OpenJPA e EclipseLink e com ���� de cober-tura nos testes.

Foi revisor de um livro especí�co sobre Primefaces e criador de posts em seu blog com aplicações completas utilizando JSF. Escreveu dois posts sobre JPA com diversas dicas que já passaram de �� mil visualizações, e que também foi o ponto de partida desse livro.

Pós-graduado em MIT Engenharia de So�ware — desenvolvimento em Java pela Infnet RJ. Atualmente atua como professor para o curso de pós-graduação, ensi-nando o conteúdo de Java Web (JSP, Servlet, JSF e Struts) e tópicos avançados, como EJB, Spring e WebServices.

(6)
(7)

Casa do Código

Agradecimentos

Agradeço a Deus pela sabedoria, força de vontade e inteligência para conseguir �na-lizar o livro.

Dedico esse livro àquela que é o maior presente que Deus poderia me dar, minha esposa Daiane. Seu sorriso único, seu olhar que encanta e sua voz que traz alegria ao meu coração. Companheira �el e única, que está sempre ao meu lado em todas as situações.

Dedico também o livro à minha família que está lá no interior de Minas Gerais juntamente com minha linda sobrinha Louanne e sua irmã e minha a�lhada Fer-nanda.

Segue um agradecimento sem medidas aqui ao Rodrigo Sasaki (http://cv. rodrigosasaki.com) que me ajudou no decorrer desse livro com revisões em textos e códigos. Ter um pro�ssional de alto calibre como ele ajudando na produção de um livro é de incomensurável alegria. Sou grato a Deus por ter colocado em meu caminho pessoa tão boa, sábia e sempre disposta a ajudar.

E por último, mas não menos importante, dedico esse livro à minha querida irmã Louise, que sempre briga comigo. [=

(8)
(9)

Casa do Código

Sobre o livro

A JPA é um framework que vem ganhando mais espaço no mercado a cada dia que se passa.

Veremos nesse livro diversos conceitos e dicas de utilizações de diversos recursos que a JPA oferece. Esse livro é ideal para quem já entende o conceito do framework e já sabe fazer um “hello world”.

Ao �nal desse livro um desenvolvedor JPA já estará apto a modelar, desenvolver e resolver diversos problemas que podem acontecer ao se trabalhar com JPA.

(10)
(11)

Casa do Código Sumário

Sumário

� Introdução

� Como escolher uma implementação e as con�gurações da JPA

�.� Escolha uma implementação . . . �

�.� Como compor meu persistence.xml? . . . �

�.� Con�gurando a aplicação através de XML . . . ��

�.� Como conseguir um EntityManager . . . ��

�.�.� Controlando a transação manualmente. . . ��

�.�.� Servidor controlando a transação . . . ��

� Aprenda os detalhes dos mapeamentos de entidades ��

�.� Entidades e o seu papel no banco de dados. . . ��

�.� Saiba Gerar seu id Automaticamente . . . ��

�.� O eterno problema do mapeamento de chaves compostas . . . ��

�.� Mapeando mais de uma tabela . . . ��

�.� Como mapear herança da melhor maneira? . . . ��

�.�.� Mapped Superclass . . . ��

�.�.� SINGLETABLE . . . ��

�.�.� JOINED. . . ��

�.�.� TABLEPERCLASS. . . ��

�.� Trabalhe com os Embedded Objects . . . ��

�.� Mapeie enums e lista de valores . . . �� vii

(12)

Sumário Casa do Código

� Entenda e mapeie corretamente os relacionamentos ��

�.� Use os relacionamentos . . . ��

�.�.� Relacionamentos com @OneToOne. . . ��

�.�.� Cuidados com o @OneToMany e @ManyToOne . . . ��

�.�.� @ManyToMany . . . ��

�.� Entenda como funciona o Cascade . . . ��

�.� Entenda como funciona o OrphanRemoval . . . ��

�.� Como utilizar Lazy e Eager Loading corretamente . . . ��

�.� Entenda a LazyInitializationException . . . ��

�.�.� Utilizando o método size das listas . . . ��

�.�.� Carregamento por anotação . . . ��

�.�.� Stateful EJB . . . ��

�.�.� Carregando por Query com Join . . . ��

�.� Aprenda a tratar o erro: ‘cannot simultaneously fetch multiple bags’ . ��

�.� Trate o erro: ‘could not initialize a collection’ . . . ��

�.� Cuidado para não cair no famoso “efeito n+�” . . . ��

� Aprenda os truques da JPQL e domine as consultas da JPA ��

�.� Esqueça SQL! Abuse da JPQL . . . ��

�.� Parâmetros com JPQL. . . ���

�.� Navegações nas pesquisas. . . ���

�.�.� Join . . . ���

�.�.� Faça ordenações . . . ���

�.�.� Navegando pelos relacionamentos . . . ���

�.� Funções Matemáticas . . . ���

�.�.� Calculando mínimos e máximos . . . ���

�.�.� Contando resultados . . . ���

�.�.� Outras funções: MOD, SQRT e AVG . . . ���

�.� Funções String . . . ���

�.� Agrupadores - group by e having . . . ���

�.� Condições para comparações . . . ���

�.�.� Restrinja pesquisas por uma lista com o IN . . . ���

�.�.� Evite repetições com DISTINCT . . . ���

�.�.� Listas e valores vazios com EMPTY e NULL. . . ��� viii

(13)

Casa do Código Sumário

�.�.� Pesquise por intervalos com BETWEEN . . . ���

�.�.� Busca por trechos de texto com LIKE. . . ���

�.�.� Veri�que se um elemento existe com o MEMBER OF . . . . ���

�.�.� Operações em listas com EXISTS, ANY, SOME e ALL . . . . ���

�.�.� Use CONCAT para concatenar Strings . . . ���

�.�.� Veri�que a posição de um texto com o LOCATE . . . ���

�.�.�� Identi�que o tamanho de listas com o SIZE . . . ���

�.� Trabalhando com data e hora atual . . . ���

�.� Buscando apenas um resultado na consulta . . . ���

�.�� Criando objetos com o retorno de consultas . . . ���

� Alternativas às consultas: Named Queries e Queries nativas ���

�.� Organizando consultas com NamedQuery . . . ���

�.� Quando há algo muito especí�co, utilize Query nativa . . . ���

�.� Devolva resultados complexos com queries nativas . . . ���

� Entenda as queries programáticas com Criteria ���

�.� A Criteria mais simples do Hibernate . . . ���

�.� EasyCriteria . . . ���

� Recursos avançados com a JPA ���

�.� Não deixe os resultados da consulta em memória . . . ���

�.�.� Otimização com EJB . . . ���

�.�.� Otimização com Spring. . . ���

�.�.� Java SE ou transação manual . . . ���

�.� Paginação de consultas . . . ���

�.� Operações em muitos registros - Bulk Operations . . . ���

�.� Tratamento de concorrência . . . ��� �.�.� Read Committed. . . ��� �.�.� Aplicando o Lock . . . ��� �.�.� Lock Otimista . . . ��� �.�.� Lock Pessimista . . . ��� � Finalizando ��� Versão: ��.�.�� ix

Referências

Documentos relacionados

PROCURADORIA GERAL DO ESTADO, Maceió/AL, 03 de fevereiro de 2017. N° 0244/2017 - Aprovo o Despacho PGE-PLIC-CD nº 0305/2017, da lavra da Coordenação da Procuradoria

O gráfico demonstra também que as mulheres aderem à ginástica de academia em busca de condicionamento físico, pois as mesmas possuem o hábito de praticar

se as opções abaixo e assinale a alternativa correta que apresenta uma função/role que não está disponível nesta versão do sistema operacional. I- Servidor DHCP

Caso seja lançada uma atualização do Play, e você queira atualizar, renomeie o diretório C:\play\ para C:\play-old\ e descompacte a nova versão em C:\play\. Instalação

eu amo rosana eu beijo rosana eu chumbo rosana eu desenho rosana eu escuto rosana eu filmo rosana eu guardo rosana eu homenageio rosana eu imagino rosana eu junto rosana eu

Na África Subsaariana, que apresenta a mais alta prevalência de infecção pelo HIV do mundo, estudos apontam o álcool como um fator de risco para contami- nação 12 , pois a prática

Repare que a recomendação é bem favorável à aplicação do progressive enhan- cement: mesmo que o navegador não entenda exatamente o que estamos querendo dizer, ele vai mostrar

Além disso, escrever testes de unidade forçará o desenvolvedor a escrever um código de maior qualidade pois, como veremos ao longo do livro, para escrever bons testes de unidade,