Curso Persistência com JPA, Hibernate e EJB lite

FD9E034F-C706-472D-ABA4-310433A703E5 Created with sketchtool. 40 horas/aula
Veja as próximas turmas

O que você vai fazer

Para quem é esse curso?

Desenvolvedores Java interessados em persistência com banco de dados utilizando a JPA e sua principal implementação, o Hibernate.

Para aproveitar melhor o curso recomendamos que você tenha conhecimento em

Curso Java e Orientação a Objetos - Curso Java para Desenvolvimento Web

Conheça todos os cursos que fazem parte da Formação Java EE

Conteúdo detalhado do curso FJ-25

    Persistência com JPA2 e Hibernate

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

    Definição do projeto

  1. Descrição do problema
  2. Tecnologias escolhidas
  3. Uma visão 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 a 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. Instalando o Hibernate e o driver do MySQL
  7. Mapeando os modelos através de anotações
  8. Estratégias da JPA para chaves auto geradas
  9. Configurando a JPA
  10. Criando o banco de dados e se conectando
  11. Persistindo objetos dentro de uma transação
  12. Exercícios: Mapeando os modelos e criando o banco de dados
  13. 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. Encapsulando a criação do EntityManager
  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. Para saber mais: Repository
  6. Exercícios: Encapsulando código através do DAO
  7. Estados das entidades e ciclo de vida
  8. O estado Managed
  9. O estado Transient
  10. O estado Detached
  11. O estado Removed

    Complementando o modelo com o uso de relacionamentos

  1. Relacionando a Movimentação com uma Conta
  2. Trabalhando com enumerações e datas
  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 TransientPropertyValueException
  8. Buscando objetos em relacionamentos
  9. Atualizando objetos envolvidos em relacionamentos
  10. Criando o DAO de Movimentação
  11. Exercícios: Persistindo e pesquisando em relacionamentos
  12. Para saber mais: Operações em cascata
  13. Callbacks para Entidades
  14. EntityListener
  15. Exercício opcional - EntityListeners

    Introdução a Java EE

  1. Gerenciamento do JPA
  2. Inversão de Controle
  3. Java EE - Java Enterprise Edition
  4. Servidor de aplicação
  5. Para saber mais: JBoss AS se chama WildFly
  6. Exercícios: Instalação do JBoss AS 10 - Wildfly
  7. Diretórios do WildFly
  8. Exercícios: Configurando o WildFly no WTP do Eclipse
  9. Em casa

    Cuidando melhor das conexões com Pool e DataSource

  1. Escalabilidade e conexões com o banco, qual a relação entre eles?
  2. Connection Pool do Hibernate
  3. Configuração do DataSource no WildFly
  4. Datasource com MySQL
  5. Em casa: Tarefa do Administrador - Configuração do DataSource no Wildfly
  6. Usando o C3P0 como _pool_ para aplicações sem DataSource
  7. Exercícios opcionais: Configurando e gerenciando o _pool_ com o C3P0

    Gerenciamento da JPA com EJB lite dentro de uma aplicação Web

  1. A ideia do projeto web
  2. Exercício: colocando o projeto web no ar
  3. Integrando JPA e o DataSource
  4. Gerenciamento da JPA dentro do WildFly
  5. Introdução aos Enterprise Java Beans
  6. Injeção com @PersistenceContext
  7. Tipos de EJBs
  8. Gerenciamento de transação: modo declarativo
  9. Integrando JSF com EJB através de CDI
  10. Exercícios: Integrando os DAOs ao projeto Web
  11. Exercícios: Alteração da Conta

    EJB 3.1 - Ciclo de vida de Session Beans

  1. Em que momento acontece a injeção?
  2. Ciclo de vida de um Stateless Session Bean
  3. Pool de objetos
  4. Atributos de instância de um Stateless Session Bean
  5. Configurando o pool de instâncias do WildFly
  6. Um bean na aplicação: Singleton
  7. Um bean por cliente: Stateful
  8. Qual tipo de Session Bean devo usar?
  9. Interfaces Locais e Remotas de Session Bean
  10. Para saber mais: Lookup pelo JNDI
  11. Exercícios: Utilizando Session Beans e Pool de Objetos

    Agendamento de tarefas

  1. Agendamentos precisos com TimerService
  2. Agendamento exato
  3. Expressões declarativas com @Schedule
  4. Exercícios: Agendamento

    Transações e Exceções

  1. Confiabilidade dos dados
  2. Gerenciamento de transação: modo programático (BMT)
  3. O modo declarativo (CMT)
  4. Tratamento de exceções
  5. System Exceptions
  6. Application Exceptions
  7. Exercícios: Manipulando a transação com EJB 3
  8. Exercício opcional - @TransactionAttribute
  9. Exercício opcional - BMT

    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 as 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 Muitos-Para-Muitos
  8. Para saber mais: @JoinTable
  9. Comportamento Lazy
  10. Problema comum na web: LazyInitializationException
  11. Exercício: Relacionamentos Lazy
  12. Inicializando as entidades com Queries planejadas
  13. Exercícios: Queries planejadas
  14. Para saber mais: Fetch Profile
  15. Resolvendo o problema do Lazy-Loading
  16. Open EntityManager In View com CDI
  17. Exercícios: Implementando o pattern Open EntityManager In View
  18. @BatchSize e Queries n+1

    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. Cache no WildFly: Infinispan
  5. Habilitando o Infinispan em sua aplicação
  6. Exercício: Configurando e testando o Infinispan
  7. Cache de collections
  8. Exercícios: Utilizando cache para as collections
  9. Invalidadação programática do Cache - javax.persistence.Cache
  10. Exercício opcional: Invalidar programaticamente
  11. Cache de queries
  12. Exercícios: Adicionando cache em consultas
  13. Trabalhando com cache fora de um servidor de aplicação
  14. Exercício opcional: Configurando e testando o EhCache
  15. Para saber mais: Estratégias para invalidar o cache
  16. Vendo nossa performance: Hibernate Statistics
  17. Exercícios: Visualizando estatísticas do hibernate na aplicação web
  18. Extended Persistence Context - Um EntityManager para várias requisições
  19. Lock otimista e pessimista
  20. Exercícios Opcionais: Configurando e testando o lock otimista
  21. Para saber mais: Operações em lote
  22. Exercícios Opcionais: Operações em lote
  23. As novidades do JPA 2.1 no Java EE 7

    Validação e integridade dos modelos

  1. Definição de constraints no banco pelo JPA
  2. Exercícios: Validação através de Constraints
  3. Validando objetos
  4. A forma tradicional de validação
  5. A forma simples: Bean Validation e Hibernate Validator
  6. Utilizando o Hibernate Validator
  7. Exercícios: Adicionando o Hibernate Validator aos modelos
  8. Outros validadores
  9. Alterando a mensagem de erro padrão das validações
  10. Criando seu próprio validador
  11. Exercícios: Criando um validador customizado
  12. Para saber mais: Agrupando anotações de validação para evitar repetição
  13. Validação em cascata
  14. Para saber mais: Novidades do Bean Validation no Java EE 7
  15. Integração com outras tecnologias

    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

    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: Mapeamento de Herança com JPA

    *Apêndice - 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 MetaModel 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

    *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 - Googlando sua aplicação através do Hibernate Search

  1. O problema de busca por texto: a descrição da movimentação
  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. Para saber mais: atualizando o índice
  10. Para saber mais: MultiFieldQueryParser
  11. Indexando mais de um campo
  12. Para saber mais: Utilizando o Hibernate Search DSL para facilitar buscas avançadas
  13. Para saber mais: Buscando termos usando AND e NOT

    *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. Recursos especiais nas buscas
  6. Joins e Produto Cartesiano
  7. Scrollable Results um comparativo com o JDBC
  8. Subselect com Detached Criteria
  9. StatelessSession

* Apêndices são conteúdos adicionais que não fazem parte da carga horária regular do curso. São conteúdos extras para direcionar seus estudos após o curso.

O que os alunos falam

Cláudia da Costa Coutinho Salgues, Caelum Brasília

A melhor escola com que o Conselho da Justiça Federal poderia fazer a finalização tecnológica em relação ao Processo Judicial Eletrônico. A empresa Ca...

Jonathan Nagayoshi

Alta qualidade técnica. A turma foi muito boa, tanto alunos como a instrutora conseguiram criar um ótimo ambiente descontraido de aprendizagem, mas co...

Daniel Penasio

O instrutor Cassio tem uma didática incrível, que ajudou em muito o entendimento do conteúdo. Incrível!

Próximas turmas

Selecione a cidade e os períodos de sua preferência

Qual cidade você pode ir?
Quais períodos você prefere?
Ver turmas encontradas

Nós encontramos essas turmas:

Não achou a turma ideal pra você? Consulte outras turmas e horários.

Entre em contato

Não encontrou o curso que procura? Conheça a Alura, a plataforma online da Caelum

Conheça a Alura