Skip to main content
Jump to: navigation, search


EclipseLink JPA Training: Black Belt

Course Under Development

This page describes the EclipseLink Black Belt (advanced) training course. The intent is produce a set of materials that are freely available and licensed under EPL & EDL so that community members can use these materials to train others.

Date Committer(s) Description
July 29, 2009 dclarke Initial Outline Proposed


The EclipseLink JPA black-belt training will provide developers experienced in JPA a greater depth of knowledge in the specific use of EclipseLink JPA. The course will provide an understanding of how the internals of EclipseLink work focusing on many of its advanced value-add features such as its shared and coordinated caching, query and expression frameworks, and its underlying native API with flexible customizations and events for addressing advanced object-relational requirements.


  • 1 - Course Introduction
  • 2 - Configuration
    • JPA: persistence.xml, annotations, and orm.xml
    • EclipseLink JPA: PU Properties, annotations, eclipselink-orm.xml, and query hints
    • EclipseLink Native API: Sessions and UnitOfWork
    • EclipseLink Metamodel: Project, ClassDescritpor, DatabaseMapping
    • EclipseLink native ORM: sessions.xml and deployment.xml
    • DatabasePlatform
    • Server Platform
  • 3 - Mapping
    • Additional Mapping Types
    • Private Owned
  • 4 - Entity Weaving
    • Weaving features: Lazy Loading, Fetch Groups, Change Tracking, State Caching
    • Dynamic and Static usage
  • 5 - Querying
    • Native Queries and execution
    • Dynamic Querying using Expressions (native criteria)
  • 6 - Transactions
    • Additional Locking options
  • 7 - Caching
    • Isolated Cache Usage
    • Shared Cache Config
      • Invalidation/Expiration
      • Cache Coordination
  • 8 - Diagnostics
    • Logging
    • Profiling
    • JMX/MBeans
  • 9 - Customizations
    • Descriptor Policies: Instantiation, CloneCopy, ...
    • JPA Entity events and Descriptor Events
    • Session Events
  • 10 - Performance Tuning
    • Graph Loading with minimal SQL
      • FETCH JOIN
      • Joining and Batching Query Hints
    • Projections versus Entity Queries
    • Leveraging the cache
      • Pre-loading
      • Cache Effectiveness

Additional Topics

Depending on the application architecture being used there are a variety of additional topics which may be covered.

  • EclipseLink JPA in a multi-tiered architecture
  • EclipseLink JPA in a rich client application (JavaSE)
  • EclipseLink JPA in an OSGi container



  • An IDE - the projects provided are for the Eclipse IDE but the exercises should be easily adjustable to any development environment
  • A Java EE 5 or better Container - A web container should also be usable but may not support dynamic entity weaving
  • EclipseLink
  • Exercises - initial projects and instructions

Exercise 1: Deploy & Test Simple App


The courseware will be developed as part of the EclipseLink project in trunk @ /svnroot/rt/org.eclipse.persistence/branches/1.2/documentation/courseware/jpa/blackbelt

Courseware in SVN

Back to the top