Logar
Evento
/

FJ-25 | Persistência com JPA e Hibernate (Integral)

FJ-25 | Persistência com JPA e Hibernate (Integral)

Participantes

0
participantes
0
curtidas
Banner - FJ-25 | Persistência com JPA e Hibernate (Integral)
Mostrar
  • De 09/07 às 09:00 até: 12/07 às 17:00
  • Rua do Ouvidor, 50 - Sobreloja 201, Centro - Rio de Janeiro/Rio de Janeiro - Brasil

Descrição

Carga Horária: 32 horas aula

 

Seja na Web ou no Desktop, trabalhar com banco de dados em Java é praticamente sinônimo de JPA e Hibernate. O mapeamento objeto-relacional e as inúmeras facilidades dessas ferramentas facilitam muito a vida do programador Java, trazendo muita produtividade.

 

Neste curso recentemente reformulado, o aluno conhecerá em detalhes a JPA e o Hibernate em suas versões mais atualizadas. O curso aborda os conceitos de ORM, gerenciamento de persistência, relacionamentos, buscas avançadas, otimizações, cache, integração com Web, busca textual com Lucene e Hibernate Search, validação com Hibernate Validator e a nova Bean Validation.

 

Após esse curso, você estará preparado para trabalhar em projetos avançados com Hibernate e JPA inclusive com a última versão 2.0 da JPA do Java EE 6.

 

Esse curso faz parte da Formação Java Avançada junto com o FJ-26.

 

 

Pré-requisitos:

Cursos FJ-11 e FJ-21 ou: Java, Orientação a Objetos, Collections, JSP, JSTL básico, MVC, patterns DAO e Factory.

 

 

Conteúdo detalhado:

 

Persistência com JPA2 e Hibernate

  1. Livrar-se de SQL?
  2. Tirando dúvidas
  3. Para onde ir depois?

Definição do projeto

  1. Descrição do problema
  2. Tecnologias escolhidas
  3. Um panorama geral sobre o domínio do projeto
  4. Exercícios: Criando o projeto no eclipse

Mapeamento Objeto Relacional

  1. Trabalhando com o banco de dados
  2. Trabalhando com sistemas orientado à objetos
  3. Evitando o SQL dentro do código Java
  4. Unindo os dois mundos através do Mapeamento Objeto Relacional
  5. A Java Persistence API - JPA
  6. Mapeando os modelos através de anotações
  7. Configurando a JPA
  8. Criando o banco de dados e se conectando
  9. Persistindo objetos dentro de uma transação
  10. Exercícios: Mapeando os modelos e criando o banco de dados
  11. Exercícios Opcionais: Tempo de execução, criação do banco de dados e scanning de entidades

Organização de persistência: DAO e outros patterns

  1. JPAUtil
  2. Exercícios: Controlando a criação do EntityManagerFactory com a JPAUtil
  3. Encapsulando a JPA dentro dos DAOs
  4. Queries: Selecionando todas linhas
  5. E quando eu tiver muitos DAOs? Não quero repetir código
  6. Para saber mais: Repository
  7. Exercícios: Encapsulando código através do DAO
  8. Estados das entidades e ciclo de vida
  9. O estado Managed
  10. O estado Transient
  11. O estado Detached
  12. O estado Removed

Complementando o modelo através de relacionamentos

  1. Relacionando a Movimentação com uma Conta
  2. Trabalhando com enumerações
  3. Definindo a cardinalidade do relacionamento
  4. Exercícios: Criando o modelo de Movimentacao
  5. Persistindo objetos envolvidos em relacionamentos
  6. Exercícios: Tentando criar uma nova Movimentação relacionada com uma Conta
  7. E quando falha? Entendendo a TransientObjectException
  8. Buscando objetos com relacionamentos
  9. Atualizando objetos envolvidos em relacionamentos
  10. Criando o DAO de Movimentação
  11. Exercícios: Persistindo e pesquisando relacionamentos
  12. Para saber mais: Operações em cascata

Integrando o Hibernate com uma aplicação Web

  1. A ideia do projeto web
  2. Exercício: colocando o projeto web no ar
  3. Entendendo a estrutura do projeto web e integrando com os DAOs
  4. Exercícios: Integrando os DAOs ao projeto Web
  5. A atualização da conta em uma aplicação web
  6. Exercícios: Alteração da Conta

Criando queries avançadas para os relatórios

  1. Entendendo a JPQL
  2. Utilizando JPQL com and e or no filtro
  3. Exercícios: Buscando todas movimentações de determinada conta
  4. Exercícios: Buscando movimentações seguindo alguns critérios
  5. Executando buscas com funções
  6. Pesquisando com filtros em relacionamentos
  7. Exercícios: Calculando o total movimentado em uma Conta
  8. Exercícios: Pesquisando no relacionamento
  9. Implementando pesquisas complexas com JPQL
  10. Exercícios: Relatório avançado
  11. Para saber mais: Having
  12. Para saber mais: Named Queries

Relacionamento bidirecional e Lazyness

  1. E quando eu preciso saber quais são as movimentações da conta?
  2. Exercícios: Testando o novo mapeamento
  3. Relacionamento bidirecional
  4. Exercícios: Utilizando o mappedBy no relacionamento bidirecional
  5. Detalhes do relacionamento bidirecional
  6. Relacionamentos Many To Many
  7. Exercício: Criando um relacionamento Many To Many
  8. Lazyness
  9. Exercícios: Testando o carregamento das tags
  10. Para saber mais: Fetch Profile
  11. Problema comum na web: LazyInitializationException
  12. Open EntityManager In View e Controle Transacional
  13. Exercícios: Implementando o filtro do Open EntityManager In View
  14. Decidindo pelo lazy ou não

Cuidando melhor das conexões e queries

  1. Escalabilidade e conexões com o banco, qual a relação entre eles?
  2. Connection Pool do Hibernate
  3. Usando o C3P0 como pool de conexões
  4. Exercícios: Configurando e gerenciando o pool com o C3P0

Criando consultas com Criteria

  1. Evitando concatenação de String nas queries
  2. As classes principais da Criteria
  3. Exercício opcional: Conhecendo a Criteria
  4. Exercício opcional: Pesquisa no relacionamento com MetaModelo dinámico
  5. Montando uma consulta dinâmica
  6. Criteria typesafe com Metamodel
  7. Criteria typesafe com Static Metamodel
  8. Exercícios: Consultas utilizando Strings na Criteria
  9. Desafio: Join e Fetch nas Criterias
  10. Exercício opcional: Configurando a geração do Static Metamodel pelo Eclipse
  11. Discussão: Qual tipo de Criteria devo utilizar?
  12. Desafio: Explore a API de Criteria

Validação e integridade dos modelos

  1. Validando dados
  2. A forma tradicional de validação
  3. A forma simples: Bean Validation e Hibernate Validator
  4. Utilizando o Hibernate Validator
  5. Exercícios: Adicionando o Hibernate Validator aos modelos
  6. Outros validadores
  7. Exercícios: Utilizando outros validadores
  8. Alterando a mensagem de erro das validações padrão
  9. Exercícios: Sobrescrevendo as mensagens de validação
  10. Criando seu próprio validador
  11. Exercícios: Criando um validador customizado
  12. Validação em cascata
  13. Integração com outras tecnologias
  14. Exercícios: Integrando com outras tecnologias

Googlando sua aplicação através do Hibernate Search

  1. O problema de busca por texto: nossas tags
  2. Apache Lucene
  3. Além da especificação da JPA2: Recursos específicos do Hibernate
  4. Encapsulando o Lucene com Hibernate Search
  5. Configuração do Hibernate Search
  6. Exercícios: Indexação das Movimentações
  7. Buscando através do Hibernate Search
  8. Exercícios: Utilizando o Hibernate Search para buscas textuais
  9. Exercício opcional: Geração de várias movimentações e observando os índices com o Luke
  10. Para saber mais: atualizando o índice
  11. Para saber mais: MultiFieldQueryParser
  12. Indexando mais de um campo
  13. Para saber mais: Utilizando o Hibernate Search DSL para facilitar buscas avançadas
  14. Exercícios Opcionais: Utilizando o Hibernate Search DSL para facilitar buscas avançadas
  15. Para saber mais: Buscando termos usando AND e NOT

Recursos avançados: Cache, estatísticas e Locks

  1. Cache de primeiro nível
  2. Exercícios: Testando o cache de primeiro nível
  3. Cache de segundo nível
  4. Exercícios: Configurando e testando o cache de segundo nível
  5. Estratégias para invalidar o cache
  6. Cache de collections
  7. Exercícios: Utilizando cache para as collections
  8. Invalidadação programática - javax.persistence.Cache
  9. Exercício opcional: Invalidar programaticamente
  10. Cache de queries
  11. Exercícios: Adicionando cache em consultas
  12. Vendo nossa performance: Hibernate Statistics
  13. Exercícios: Visualizando estatísticas do hibernate na aplicação web
  14. Extended Persistence Context - Um Entity Manager para várias requisições
  15. Lock otimista e pessimista
  16. Exercícios: Configurando e testando o lock otimista
  17. Para saber mais: Operações em lote
  18. Exercícios Opcionais: Operações em lote

Mais mapeamentos

  1. Relacionamentos um para um
  2. Exercícios: Mapeando relacionamentos um para um
  3. O pattern Value Object do Domain Driven Design
  4. Implementando value objects com Embeddable
  5. Exercícios: Utilizando o Embeddable em atributos
  6. Para saber mais: Detalhes sobre o Embeddable
  7. Para saber mais: Mapeando chaves compostas

Apêndice - Detalhes sobre os mapeamentos

  1. Mapeando os objetos para um banco de dados legado
  2. Mapeamento de Herança
  3. Fazendo scripts de criação de tabelas com SchemaExport
  4. Exercícios opcionais: vendo o schema gerado

Apêndice - Hibernate Envers

  1. Auditando as alterações: Listeners
  2. Utilizando o Hibernate Envers
  3. Exercícios: Utilizando o Hibernate Envers
  4. Para saber mais: Revision Entity

Apêndice - Engenharia reversa com Hibernate Tools

  1. Introdução ao Hibernate Tools
  2. Configuração do Ant
  3. Exercícios: Gerando as entidadas a partir das tabelas

Apêndice - Hibernate Puro

  1. Entendendo a Diferença JPA e Hibernate
  2. Configuração do hibernate sem JPA
  3. Startup e CRUD com Hibernate
  4. Consultas com Criteria do Hibernate
  5. Rescursos especiais nas buscas
  6. Joins e Produto Cartesiano
  7. Scrollable Results um comparativo com o JDBC
  8. Subselect com Detached Criteria
  9. StatelessSession


* Os apêndices listados são conteúdos adicionais que não fazem parte do curso regular.

Ler mais

Localização

Programação

Este evento não possui atividades no momento.

Planta do Evento

A planta do evento não está disponível.

Contato

Preencha os campos abaixo para enviar e-mail ao organizador.

Campos Obrigatórios
Campos Obrigatórios
Ao se cadastrar, você concorda com nossos Termos de uso.
Ajaxloader

Compartilhar evento por e-mail


Para continuar, faça login ou cadastre-se.

Recomende este evento para sua rede.

Selecione os usuários que deseja recomendar este evento.