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.
Difference between revisions of "EclipseLink/Training/JPA/BlackBelt"
(→Outline) |
(→Downloads) |
||
Line 96: | Line 96: | ||
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/branches/1.2/documentation/courseware/jpa/blackbelt | ||
+ | |||
+ | [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
Contents
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
- Graph Loading with minimal SQL
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