Casa do Código - Livros e Tecnologia

  • Programação
  • Lógica
  • Java
  • .NET
  • PHP
  • Games
  • OO
  • Funcional
  • Python
  • Outros
  • Todos
  • Mobile
  • iOS
  • Android
  • Multiplataforma
  • Outros
  • Todos
  • Front-end
  • HTML e CSS
  • JavaScript
  • Outros
  • Todos
  • Infraestrutura
  • Web
  • Dados
  • Outros
  • Todos
  • Business
  • Startups
  • Marketing Digital
  • Gestão
  • Agile
  • Outros
  • Todos
  • Design & UX
  • Você tem 0 itens na sacola 0 Abrir navegação por categorias e busca Ir para ao topo da página

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

    *Você terá acesso às futuras atualizações do livro.

    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:
        Data publicação:
        Fórum de discussões

        Compartilhe!

        Compartilhe no Facebook Compartilhe no Twitter

        *Você terá acesso às futuras atualizações do livro.

        altLogoFooter

        Links da
        Casa do Código

        • Meus ebooks
        • Sobre a Casa do Código
        • Todos os livros
        • Nossas coleções
        • Quero escrever um livro ou fazer parceria
        • Perguntas Frequentes
        • Política de Privacidade
        • Fale conosco

        Nas redes sociais

        • /CasaDoCodigo
        • @casadocodigo
        • @casadocodigo

        Receba novidades e lançamentos

        Este site aceita Pix, Cartão de Crédito, Débito

        • pagarme
        • paypal

        Grupo Alura

        • Educação em Tecnologia

          • FIAP
          • Casa do Código
          • PM3 - Cursos de Produto
        • Mais Alura

          • Alura Start
          • Alura Língua
          • Alura Para Empresas
          • Alura LATAM
        • Comunidade

          • Tech Guide
          • 7 days of code
          • Hipsters ponto Jobs
        • Podcasts

          • Hipsters ponto Tech
          • Dev sem Fronteiras
          • Layers ponto Tech
          • Like a Boss
          • Scuba Dev