JPA: Java Persistence API

16h

Descrição

Este curso é uma introdução abrangente à API de persistência do Java - JPA: uma solução de mapeamento objeto-relacional (ORM) que oferece uma camada de persistência transparente para objetos Java comuns (POJOs). Usando JPA, classes podem ser mapeadas a tabelas de um banco de dados relacional, seus objetos automaticamente mapeados a registros, e queries podem ser feitos no domínio dos objetos. JPA é independente de implementação. Este curso é compatível com as implementações mais populares de JPA: Hibernate ou EclipseLink.

Ao final deste curso, o aluno terá condições de

  • Descrever as difenças entre o paradigma relacional e orientado a objetos, e as dificuldades que existem no mapeamento
  • Configurar uma unidade de persistência com um provedor de persistência como o Hibernate ou EclipseLink, e obter um Entity Manager para realizar operações de persistência.
  • Configurar cache e sessões de persistência
  • Utilizar as principais classes, anotações e interfaces do JPA para gerenciar a persistência, mapear objetos, relacionamentos e coleções, configurar atributos de persistência, construir e executar pesquisas usando JPQL e Criteria
  • Configurar o mapeamento de coleções e relacionamentos (cascading, lazyness, etc.)
  • Configurar transações, locks, caches, mapeamentos e pesquisas para ajustar a performance das operações de persistência
  • Usar JPA em aplicações Java EE configurando transações e segurança, realizando validação, integrando com CDI, REST e EJB

Este curso é parte do curso Java EE 7 (40h) onde é abordado em mais superficialmente (1/3 da carga-horária). O curso Java EE 7 também inclui EJB, CDI, JSP/servlets, JSF, Web Services REST e SOAP/WSDL e JMS

Programa

  1. Mapeamento objeto-relacional
  2. Introdução prática
  3. Arquitetura do JPA: classes e interfaces
  4. Mapeamento de entidades
  5. Entity Manager, persistence.xml, @PersistenceContext
  6. Ciclo de vida de uma entidade e listeners
  7. CRUD de entidades
  8. Relacionamentos entre objetos
  9. Mapeamento de composição
  10. Mapeamento de herança
  11. Pesquisas JPQL
  12. Pesquisas Criteria
  13. Transações e locks
  14. Cache de objetos
  15. Validação, tuning, e outros recursos do JPA
  16. Aplicações Java EE 7 com JPA