United States flagCanada flag1 877 849 1850 International flag +1 678 648 311
Please contact us
for GSA pricing.
GSA
Contract #
GS-35F-0307T

JPA 2 Training: Introduction to the Java Persistence API 2

Course Number: JAV-162
Duration: 3 days
view course outline

JPA 2 Training Overview

Accelebrate's JPA 2 Training: Introduction to the Java™ Persistence API 2 class teaches attendees how to implement JPA for data persistence. JPA 2 is a standard feature of Java EE 6 and later, but can also be used with Java SE applications.

Location and Pricing

Most Accelebrate courses are delivered as private, customized, on-site training at our clients' locations worldwide for groups of 3 or more attendees and are custom tailored to their specific needs. Please visit our client list to see organizations for whom we have delivered private in-house training. These courses can also be delivered as live, private online classes for groups that are geographically dispersed or wish to save on the instructor's or students' travel expenses. To receive a customized proposal and price quote for private training at your site or online, please contact us.

In addition, some courses are available as live, online classes for individuals. See a schedule of online courses.

JPA 2 Training Prerequisites

All attendees must have substantial prior Java development and relational database experience.

Hands-on/Lecture Ratio

This class is 70% hands-on, 30% lecture, with the longest lecture segments lasting for 20 minutes.

JPA 2 Training Materials

All JPA training students receive comprehensive courseware covering all topics in the course and a copy of APress's Pro JPA 2: Mastering the Java Persistence API.

JPA 2 Training Objectives

  • Understand the JPA architecture
  • Create JPA based applications
  • Understand and use JPA to map persistent objects to the database
  • Create JPA persistence units, and understand JPA persistence contexts
  • Use the JPA EntityManager
  • Work with queries and JPQL (Java Persistence Query Language), as well as the Criteria API (JPA 2)
  • Understand and work with collections and associations
    • Value and Entity Types
    • Bidrectional and unidirectional
    • 1-1, 1-N, N-N
  • Use versioning support for optimistic locking
  • Map inheritance hierarchies using JPA
  • Performance tune your JPA applications
  • Understanding JPA transaction support
  • Understand the relationship between JPA / EJB3
  • Use JPA entities from session beans
  • Be familiar with Spring support for JPA

JPA 2 Training Outline

  • Introduction to Java Persistence API (JPA)
    • 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, @Entity Listeners
  • Enitity 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
  • Criteria 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
      • DAO Overview
      • JpaUtil Class for EntityManager management in Java SE
      • Lifecycle Considerations
    • Integration with EJB
      • 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
      • Injection of EntityManger, EntityManagerFactory
      • LocalEntityManager FactoryBean
      • JPA/Spring Based DAO
  • Conclusion