JPA Eficáz
Sobre o autor
Hébert Coelho de Oliveira é analista desenvolvedor sênior, pós-graduado em Engenharia de Software, professor em faculdade e escritor nas horas vagas. Trabalha há mais de 10 anos com desenvolvimento de softwares e possui as certificações SCJP, SCWCD, OCBCD, OCJPAD.
É autor do livro JSF Eficaz, 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 blog http://uaiHebert.com, visualizado por 180 países, totalizando mais de 800 mil visualizações em seus 3 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 100% de cobertura nos testes.
Foi revisor de um livro específico 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 55 mil visualizações, e que também foi o ponto de partida desse livro.
Pós-graduado em MIT Engenharia de Software — desenvolvimento em Java pela Infnet RJ. Atualmente atua como professor para o curso de pós-graduação, ensinando o conteúdo de Java Web (JSP, Servlet, JSF e Struts) e tópicos avançados, como EJB, Spring e WebServices.
Agradecimentos
Agradeço a Deus pela sabedoria, força de vontade e inteligência para conseguir finalizar 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 fiel 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 afilhada Fernanda.
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 profissional 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. [=
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 final desse livro um desenvolvedor JPA já estará apto a modelar, desenvolver e resolver diversos problemas que podem acontecer ao se trabalhar com JPA.
Sumário
- 1 - Introdução
- 2 - Como escolher uma implementação e as configurações da JPA
- 2.1 - Escolha uma implementação
- 2.2 - Como compor meu persistence.xml?
- 2.3 - Configurando a aplicação através de XML
- 2.4 - Como conseguir um EntityManager
- 2.4.1 - Controlando a transação manualmente
- 2.4.2 - Servidor controlando a transação
- 3 - Aprenda os detalhes dos mapeamentos de entidades
- 3.1 - Entidades e o seu papel no banco de dados
- 3.2 - Saiba Gerar seu id Automaticamente
- 3.3 - O eterno problema do mapeamento de chaves compostas
- 3.4 - Mapeando mais de uma tabela
- 3.5 - Como mapear herança da melhor maneira?
- 3.5.1 - Mapped Superclass
- 3.5.2 - SINGLE_TABLE
- 3.5.3 - JOINED
- 3.5.4 - TABLE_PER_CLASS
- 3.6 - Trabalhe com os Embedded Objects
- 3.7 - Mapeie enums e lista de valores
- 4 - Entenda e mapeie corretamente os relacionamentos
- 4.1 - Use os relacionamentos
- 4.1.1 - Relacionamentos com @OneToOne
- 4.1.2 - Cuidados com o @OneToMany e @ManyToOne
- 4.1.3 - @ManyToMany
- 4.2 - Entenda como funciona o Cascade
- 4.3 - Entenda como funciona o OrphanRemoval
- 4.4 - Como utilizar Lazy e Eager Loading corretamente
- 4.5 - Entenda a LazyInitializationException
- 4.5.1 - Utilizando o método size das listas
- 4.5.2 - Carregamento por anotação
- 4.5.3 - Stateful EJB
- 4.5.4 - Carregando por Query com Join
- 4.6 - Aprenda a tratar o erro: 'cannot simultaneously fetch multiple bags'
- 4.7 - Trate o erro: 'could not initialize a collection'
- 4.8 - Cuidado para não cair no famoso "efeito n+1"
- 5 - Aprenda os truques da JPQL e domine as consultas da JPA
- 5.1 - Esqueça SQL! Abuse da JPQL
- 5.2 - Parâmetros com JPQL
- 5.3 - Navegações nas pesquisas
- 5.3.1 - Join
- 5.3.2 - Faça ordenações
- 5.3.3 - Navegando pelos relacionamentos
- 5.4 - Funções Matemáticas
- 5.4.1 - Calculando mínimos e máximos
- 5.4.2 - Contando resultados
- 5.4.3 - Outras funções: MOD, SQRT e AVG
- 5.5 - Funções String
- 5.6 - Agrupadores - group by e having
- 5.7 - Condições para comparações
- 5.7.1 - Restrinja pesquisas por uma lista com o IN
- 5.7.2 - Evite repetições com DISTINCT
- 5.7.3 - Listas e valores vazios com EMPTY e NULL
- 5.7.4 - Pesquise por intervalos com BETWEEN
- 5.7.5 - Busca por trechos de texto com LIKE
- 5.7.6 - Verifique se um elemento existe com o MEMBER OF
- 5.7.7 - Operações em listas com EXISTS, ANY, SOME e ALL
- 5.7.8 - Use CONCAT para concatenar Strings
- 5.7.9 - Verifique a posição de um texto com o LOCATE
- 5.7.10 - Identifique o tamanho de listas com o SIZE
- 5.8 - Trabalhando com data e hora atual
- 5.9 - Buscando apenas um resultado na consulta
- 5.10 - Criando objetos com o retorno de consultas
- 6 - Alternativas às consultas: Named Queries e Queries nativas
- 6.1 - Organizando consultas com NamedQuery
- 6.2 - Quando há algo muito específico, utilize Query nativa
- 6.3 - Devolva resultados complexos com queries nativas
- 7 - Entenda as queries programáticas com Criteria
- 7.1 - A Criteria mais simples do Hibernate
- 7.2 - EasyCriteria
- 8 - Recursos avançados com a JPA
- 8.1 - Não deixe os resultados da consulta em memória
- 8.1.1 - Otimização com EJB
- 8.1.2 - Otimização com Spring
- 8.1.3 - Java SE ou transação manual
- 8.2 - Paginação de consultas
- 8.3 - Operações em muitos registros - Bulk Operations
- 8.4 - Tratamento de concorrência
- 8.4.1 - Read Committed
- 8.4.2 - Aplicando o Lock
- 8.4.3 - Lock Otimista
- 8.4.4 - Lock Pessimista
- 9 - Finalizando
Dados do produto
- Número de páginas:
- Data publicação: