Curso Java API Persistence
24 horasVisão Geral
Curso Java API Persistence, Como parte da revisão completa da especificação Enterprise JavaBeans™ (EJB), a persistência do banco de dados foi dividida em uma especificação completamente separada, a Java Persistence API (JPA). O JPA substitui os beans de entidade por novos e poderosos recursos de Object-Relational Mapping (ORM) baseados em tecnologias comprovadas, como Toplink® e Hibernate®. Este curso inclui todos os recursos importantes do JPA 2 e também é adequado para usuários da versão 1.0.
O JPA suporta um modelo baseado em POJO (Plain Old Java Object) usando anotações que permitem desenvolver classes persistentes seguindo idiomas Java comuns. Ele suporta relacionamentos de entidade, herança, polimorfismo, composição e muito mais. O Java Persistence Query Language (JPQL), que é baseado em SQL, mas opera no modelo de objeto, fornece uma ponte poderosa entre o objeto e os mundos relacionais. O JPA também permite expressar consultas usando SQL nativo, incluindo a capacidade de mapear os resultados da consulta SQL para entidades persistentes. Este curso cobre tudo o que você precisa saber para começar a trabalhar com a Java Persistence API em um tempo muito curto. Abrange todos os conceitos importantes necessários para acessar e atualizar dados armazenados em bancos de dados relacionais. Ele inclui uma extensa série de laboratórios para exercitar todas as principais capacidades. A plataforma padrão faz todos os laboratórios com o Eclipse IDE, e as instruções do laboratório incluem instruções detalhadas para configurá-lo e usá-lo. O curso está disponível para todos os principais ambientes de desenvolvimento, incluindo IBM RAD e IntelliJ.
Objetivo
Após realizar este Curso Java API Persistence voce será capaz de:
- Entenda a arquitetura JPA
- Crie aplicativos baseados em JPA
- Entenda e use JPA para mapear objetos persistentes para o banco de dados
- Crie unidades de persistência JPA e entenda os contextos de persistência JPA e o ciclo de vida da entidade
- Use o JPA EntityManager
- Trabalhe com consultas e JPQL (Java Persistence Query Language), bem como a Criteria API (JPA 2)
- Compreender e trabalhar com coleções e associações
- Tipos de Valor e Entidade
- Bidirecional e unidirecional
- 1-1, 1-N, NN
- Use o suporte de versão para bloqueio otimista
- Mapear hierarquias de herança usando JPA
- Ajuste de desempenho de seus aplicativos JPA
- Entenda o suporte a transações JPA
- Entenda a relação entre JPA/EJB3
- Use entidades JPA de beans de sessão (opcional)
- Estar familiarizado com o suporte Spring para JPA (opcional)
Publico Alvo
- Desenvolvedores Java que precisam desenvolver sua compreensão do JPA.
Pre-Requisitos
- Proficiência em Java e programação orientada a objetos, conhecimento em bancos de dados relacionais e alguma familiaridade com Spring® são recomendados.
Materiais
Português + Lab Pratico on premise vs cloudConteúdo Programatico
Overview
- Persistence Layers, Object-Relational Mapping (ORM), JDBC
- JPA Overview
- Mapping with JPA
- Entities and @Entity, ids and @Id,
- Generated Id Values
- Basic Mapping Types
- Persistence Unit and EntityManager
- Persisting to the DB, the EntityManager API
- Persistence Units, Config, Persistence Context
- Retrieving Persistent Entities with find()
- More About Mappings
- Default Mappings, @Basic, @Column
- Field vs. Property Access
- Temporal (Date/Time) Mappings
- Logging Options (Provider based)
Updates and Queries
- Inserting and Updating – Persisting new Entities, Updating an Instance, Removing an Instance
- Querying and JPQL
- Entity Based Queries, SELECT ,WHERE
- Query Interface, Executing Queries, Generic Queries (JPA 2)
- JPQL Operators, Expressions, and Parameters
- Named Queries
- Additional Query Capabilities
- Projection query, Ordering, Aggregate Query, Build Update and Delete
- Embedded Objects
- @Embeddable, @Embedded
- Defining and using Embedded Objects
- Compound Primary Keys – @EmbeddedID, @IDClass, Defining Compound Keys
The Persistence Lifecycle
- Transaction Overview and Transactions in JPA
- Transaction Overview
- EntityTransaction API (including JTA and resource-local EntityManager)
- The Persistence Lifecycle
- JPA Entity States (New, Managed, Detached, Removed), and Entity State Diagram
- Persistence Context – Lifespan, Propagation
- Synchronization to the DB
- Versioning and Optimistic Locking
- Overview, Detached Instances
- Versioning, @Version, Optimistic Locking
- Lifecycle Callbacks
- @PrePersist, @PostPersist, etc.
- Entity Listeners, @EntityListeners
Entity Relationships
- Relationships Overview: Object Relationships, Participants, Roles, Directionality, Cardinality
- Relationship Mapping
- Mapping Overview (1-1, 1-N, N-1, N-N)
- Unidirectional and Bidirectional
- @ManyToOne, @OneToMany, Table Structures
- Relationship Inverse – Owning Side
- Collection Types (List, Set, etc)
- Cascading Over Relationships (including orphanRemoval – JPA 2)
- @ManyToMany, @OneToOne
- Lazy and Eager Loading
- Queries Across Relationships (Inner Joins, Outer Joins, Fetch Joins)
- Entity Inheritance Mapping
- Overview
- Single Table Mapping
- Joined (Table per Subclass) Mapping
- Table per Concrete Class Mapping
- Pros and Cons
- Element Collections (JPA 2)
- Overview, Collections of Value Objects, @ElementCollection, @CollectionTable
- Using Element Collections
- Collections of Embeddables
The Crietria API (JPA 2)
- Overview of the Criteria API
- Path Expressions, Building Queries (CriteriaBuilder, CriteriaQuery, Subquery, Predicate, Expression, Order, Selection, Join)
- Executing Queries and Accessing Results
Additional JPA Capabilities
- XML Mapping Files
- Bean Validation (JPA 2)
- Best Practices
- Primary Keys, Named Queries, Lazy/Eager Loading, Transactional Semantics, Encapsulation, Report Queries
Integration
- Data Access Objects (DAO) and Java SE Integration (Optional)
- DAO Overview
- JpaUtil Class for EntityManager management in Java SE
- Lifecycle Considerations
- Integration with EJB (Optional)
- Using JPA with Session Beans
- Container Managed (Injected) Entity Manger
- JTA Transactions and Lifecycle Considerations
- Extended Persistence Contexts
- Using JPA with Java Web Apps
- Using EntityManager in Web apps – request scoping
- Lazy Loading – Open EntityManager in View Pattern
- Integration with Spring (Optional)
- Injection of EntityManger, EntityManagerFactory
- LocalEntityManagerFactoryBean
- JPA/Spring Based DAO