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 8 - 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

    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

    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

    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: 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 das validações padrão
  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

    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

    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

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
Fale com a gente!

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

Conheça a Alura