Fast Track to the Java Persistence API Version 2 (JPA 2) Training

Answers to Popular Questions:

Yes, this class can be tailored to meet your specific training needs.
Yes, we provide Java Programming consulting services.
Yes, group discounts are provided.

Course Description

As part of the complete overhaul of the Enterprise JavaBeans (EJB) specification, database persistence was broken out into a completely separate specification, the Java Persistence API (JPA). JPA replaces entity beans with powerful new Object-Relational Mapping (ORM) capabilities based on proven technologies such as Toplink and Hibernate. This course includes all important features from JPA 2, and is also suitable for users of the 1.0 release. JPA supports a POJO (Plain Old Java Object) based model using annotations which lets you develop persistent classes following common Java idioms. It supports entity relationships, inheritance, polymorphism, composition, and much more. The Java Persistence Query Language (JPQL), which is based on SQL but operates on the object model, provides a powerful bridge between the object and relational worlds. JPA also allows you to express queries using native SQL, including the capability to map the SQL query results to persistent entities This course covers everything you need to know to begin working with the Java Persistence API in a very short time. It covers all the important concepts necessary to access and update data stored in relational databases. It includes an extensive series of labs to exercise all major capabilities.
Course Length: 3 Days
Course Tuition: $1290 (US)


One year of Java programming experience (or equivalent) is preferred.

Course Outline


Introduction to Java Persistence API (JPA)

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
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
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
JPA/Spring Based DAO

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.