Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Training/JPA/BlackBelt"

(Course Outline)
(Downloads)
 
(4 intermediate revisions by the same user not shown)
Line 16: Line 16:
 
|}
 
|}
  
== Course Outline  ==
+
== Description ==
  
'''Goal:''' Educate EclipseLink users on advanced usage of EclipseLink JPA
+
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.
  
=== Outline  ===
+
== Outline  ==
  
*Introducing EclipseLink JPA
+
* 1 - Course Introduction
*Configuration  
+
 +
* 2 - Configuration  
 
** JPA: persistence.xml, annotations, and orm.xml  
 
** JPA: persistence.xml, annotations, and orm.xml  
 
** EclipseLink JPA: PU Properties, annotations, eclipselink-orm.xml, and query hints  
 
** 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  
 
** EclipseLink native ORM: sessions.xml and deployment.xml  
 
** DatabasePlatform
 
** DatabasePlatform
 
** Server Platform
 
** Server Platform
  
* Mapping  
+
* 3 - Mapping  
 
** Additional Mapping Types
 
** Additional Mapping Types
 
** Private Owned
 
** Private Owned
  
* Diagnostics
+
* 4 - Entity Weaving
** Logging
+
** Profiling
+
** JMX/MBeans
+
 
+
* Entity Weaving
+
 
** Weaving features: Lazy Loading, Fetch Groups, Change Tracking, State Caching
 
** Weaving features: Lazy Loading, Fetch Groups, Change Tracking, State Caching
 
** Dynamic and Static usage
 
** Dynamic and Static usage
  
* Querying  
+
* 5 - Querying  
**
+
** Native Queries and execution
 
** Dynamic Querying using Expressions (native criteria)  
 
** Dynamic Querying using Expressions (native criteria)  
  
* Transactions  
+
* 6 - Transactions  
 
** Additional Locking options  
 
** Additional Locking options  
  
*Caching  
+
* 7 - Caching  
 
** Isolated Cache Usage  
 
** Isolated Cache Usage  
 
** Shared Cache Config  
 
** Shared Cache Config  
Line 57: Line 55:
 
*** Cache Coordination
 
*** Cache Coordination
  
* Customizing Behaviour
+
* 8 - Diagnostics
 +
** Logging
 +
** Profiling
 +
** JMX/MBeans
 +
 
 +
* 9 - Customizations
 
** Descriptor Policies: Instantiation, CloneCopy, ...
 
** Descriptor Policies: Instantiation, CloneCopy, ...
 
** JPA Entity events and Descriptor Events
 
** JPA Entity events and Descriptor Events
 
** Session Events  
 
** Session Events  
  
*Performance Tuning  
+
* 10 - Performance Tuning  
 
** Graph Loading with minimal SQL  
 
** Graph Loading with minimal SQL  
 
*** FETCH JOIN  
 
*** FETCH JOIN  
Line 79: Line 82:
 
* EclipseLink JPA in an OSGi container
 
* EclipseLink JPA in an OSGi container
  
== Courseware Development ==
+
== Exercises ==
 +
 
 +
'''Requirements:'''
 +
* 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 ===
 +
 
 +
 
 +
== Downloads ==
 +
 
 +
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
  
The courseware will be developed as part of the EclipseLink project in trunk @ /svnroot/rt/org.eclipse.persistence/trunk/documentation/courseware
+
[http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/branches/1.2/trunk/documentation/courseware/jpa/blackbelt/ Courseware in SVN]

Latest revision as of 08:26, 6 October 2009

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

Description

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.

Outline

  • 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
      • Cache Types: FULL, WEAK, SOFT_WEAK, HARD_WEAK, NONE
      • 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

Exercises

Requirements:

  • 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

Downloads

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