Curso de JPA - Java Persistence API com MOR
Duração:
28h
O curso de Java JPA - Java Persistence API com MOR tem por objetivo prover ao aluno ferramentas de produtividade em Java para o desenvolvimento da camada relacional de aplicações.
Objetivos
- Conhecimento para aplicar o mapeamento objeto relacional no curso de MOR. Existe uma distância muito grande entre os conceitos de orientação a objetos e os conceitos de tabelas. Assim, o curso provê ao aluno a ligação entre os objetos e as tabelas de um banco de dados relacional, o que é chamado de mapeamento objeto relacional.
- Redução do tempo para o desenvolvimento da camada relacional das aplicações. O aluno será capaz de desenvolver aplicações comerciais rapidamente, aprenderá a criar tabelas em banco de dados sem a necessidade de conhecimento em um banco de dados em especial.
- Tornar os sistemas mais adaptáveis na camada relacional ao surgimento de novos requisitos de aplicações. O uso de JPA e do Hibernate permite ao desenvolvedor especificar classes e consultas relacionais adaptaveis à mudanças. Ou seja, é possível acrescentar ou remover classes em uma aplicação e colocar as funcionalidades em operação com um banco de dados em curto tempo.
- Facilitar o reuso de código da camada relacional. Usando a JPA e as consultas JPQL é possível reutilizar módulos inteiros de uma aplicação no desenvolvimento de outra.
- Redução de custos com o desenvolvimento de aplicações comerciais em Java. O uso da JPA permite que a camada relacional de aplicações seja desenvolvido em tempo muito menor do que se fosse desenvolvido utilizando JDBC e SQL.
Pré-requisitos
- Curso TargetTrust Introdução a Banco de Dados Relacional ou conhecimento equivalente
- Curso TargetTrust Orientação a Objetos com UML
- Curso TargetTrust Java - Fundamentos da Linguagem ou conhecimentos de Java
Público alvo
- Administradores de Dados
- Administradores de Banco de Dados
- Analistas de Sistemas
- Arquitetos de Sistemas e Projetistas
- Desenvolvedores de Aplicações
- Programadores
- Web Developers
Conteúdo
1. Conceitos Básicos de Mapeamento Objeto Relacional
- Objetivos
- O Modelo Orientado a Objeto
- O Modelo Relacional
- Impedância Objeto-Relacional
- ->Impedância Técnica
- ->Impedância Tecnológica
- ->Impedância Cultural
- Encapsulando o Acesso a Dados
- Estratégias para Persistir Dados de Objetos
- ->Banco de Dados Orientado a Objeto
- ->Adoção de Patterns
- ->Frameworks de Persistência
- Introdução ao Mapeamento Objeto-Relacional
- Os Mapeamentos Fundamentais
- MOR em um Processo de Desenvolvimento de Software Incremental
- Quem faz o mapeamento?
2. Arquiteturas e Frameworks Java para MOR
- Objetivos
- Compreendendo os Termos
- ->O que é um Java Bean?
- ->O que são Beans de Entidades?
- ->Por que JPA está definida como parte integrante de EJB3?
- ->Regras de Beans de Entidade para JPA
- ->Considerações Quanto aos Atributos de Entidades
- ->O Que São POJOs?
- Mapeamento Objeto Relacional em Java
- ->JPA
- ->OpenJPA
- ->Hibernate
- ->TopLink
- O Gerencimento de Persistência de Frameworks Java para MOR
- ->Contexto
- ->Gerenciador
- ->Ciclo de Vida
- Compreendendo Arquitetura
- ->O Que é DAO e DTO?
- ->Ambiente Java EE e SE
- ->Instalação e Configuração da Arquitetura
3. Anotações Java Persistence API
- Objetivos
- Mapeamento de Classes
- Informações Implícitas
- Entidades
- ->@javax.persistence.Entity
- Tabelas
- ->@javax.persistence.Table
- Mapeamento de Propriedades para Colunas
- ->@javax.persistence.Column
- Propriedades não Persistentes (Transientes)
- ->@javax.persistence.Transient
- Atributo Identificador (Chave Primária)
- ->@javax.persistence.Id
- Geração de Chaves Primárias
- ->@javax.persistence.GeneratedValue
- ->@javax.persistence.SequenceGenerator
- ->@javax.persistence.TableGenerator
- Chaves Compostas
- ->@javax.persistence.IdClass
- ->@javax.persistence.EmbeddedId
- Enumerações
- ->@javax.persistence.Enumerated
- Campos de Data e Hora
- ->@javax.persistence.Temporal
- Inicializações em Buscas
- Definição do Exemplo do Curso
4. Associações
- Objetivos
- Inicializações em Associações
- ->Multiplicidade de Associações
- Multiplicidade Um para Um
- Multiplicidade Um para Muitos
- ->@javax.persistence.OneToMany e JoinTable
- Multiplicidade Muitos para Um
- Multiplicidade Muitos para Muitos
- Mapeando Relacionamentos Baseados em Coleções
- ->Relacionamento Baseado em Lista Ordenada
- ->Relacionamento Baseado em Mapas
- Continuação do Exemplo do Curso
5. Herança
- Objetivos
- Introdução
- Uma Tabela por Hierarquia de Classes
- Uma Tabela por Classe Concreta
- Uma Tabela por Subclasse
- Combinação de Estratégias: Classes Bases que Não São Entidades
- Definição do Exemplo do Curso para Herança
6. Operações Básicas de Persistência na JPA
- Objetivos
- Operações CRUD
- Inclusão na Base de Dados
- ->Inclusão Simples
- Buscas
- Atualizações na Base de Dados
- Atualização em um Objeto Persistente
- Deleções
- Sincronização de Estados de Objetos e Base de Dados
7. A Linguagem de Comandos da JPA
- Objetivos
- Visão Geral
- ->HQL
- ->EJBQL
- ->JPQL
- Elementos e Sintaxe
- ->Expressões e Identificadores
- Named Queries
- Queries Nativas
- Entidades Usadas nos Exercícios
- Adicionando Consultas JPQL no Exercício
- ->Trabalhando com Associações da Entidade Endereco
- ->Utilizando Joins com a Palavra Reservada IN
- ->Inicializando Associações em Consultas
Apêndice 1: Mapeamentos por XML
- Persistence.xml
- Configurando um Data Source
- ->PersistenceContext
Apêndice 2: Criteria API na JPA 2.0
- Criteria API versus JPQL
- O que há de errado com a consulta JPQL?
- ->Como uma consulta com Criteria ajuda?
- ->Segue abaixo alguns outros exemplos de consultas elaboradas com a Criteria API
- ->Consulta Simples
- ->Consulta Simples com ORDER BY
- ->Consulta Simples com Campos Selecionados
- ->Consulta com uma única Criteria
- ->Consulta com múltiplas Criterias
- ->Consulta com um único literal
- ->Consulta com Summary (MIN, MAX, AVG)
- ->Consulta com Agregação (GROUP BY)
- ->Consulta com JOIN
- ->Consulta com FETCH JOIN
- ->Consulta com Subselect (Subquery)
Tenho interesse