Use o código e tenha 10% de desconto!

JPA Eficaz As melhores práticas de persistência de dados em Java

Hébert Coelho
Capa

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:
      167
      ISBN:
      978-85-66250-31-2
      Data publicação:
      11/2013

      Compartilhe!

      Compartilhe no Facebook Compartilhe no Twitter