Java Persistence API (JPA) A Brief Overview By Scott Rabon
We have come a long way • Java application persistence history – JDBC – EJB Entity Beans 1
Industry answered the call • Proprietary persistence products were introduced – JBoss Hibernate – Oracle Top Link 2
Why Another Standard • Standard goes deeper than a product • Can be implemented by different vendors • Developers code to interface, not implementation 3
A Standard Is Born JSR 220 – EJB 3.0 Specification Java Persistence API part of EJB 3.0 Specification 4
JPA Fun Facts • JSR 220 formed May 2003 • Released May 2006 • Expert group consisted of industry ORM developers 5
JPA – Designed for Ease of Use • Main goal of design team • Elegant, powerful and flexible • Easy to learn 6
Aspects: POJO Persistence • Objects are POJO’s • Mapping is metadata driven • External XML or annotation based 7
Aspects: Non Intrusiveness • API does not intrude on objects • API exists as a separate layer from persistent objects • Objects are “unaware” of the API 8
Aspects: Object Queries • Query across entities and relationships • Expressed in Java Persistence Query Language (JPQL) • Uses a schema abstraction 9
Aspects: Mobile Entities • Detachment Model • Move entities between JVM’s • Can change state anywhere along the way • Reattach upon return 10
Aspects: Simple Configuration • Java SE 5 Annotations • XML • Heavy use of defaults 11
Aspects: Integration and Testability • Challenge: Testing on an app server • API works outside application server – Two tier apps – Unit tests and automated testing frameworks 12
Entities Not same as entity beans 13
Entity Characteristics - Persistability • Entities must be persistable • State can be represented in a data store • Entities can be manipulated without having persistent repercussions – app must use API 14
Entity Characteristics - Identity • Key that uniquely identifies an instance • Persistent identity • Equivalent to primary key 15
Entity Characteristics - Transactionality • Adds, updates and deletes normally occur in a transaction • Changes succeed or fail atomically • In memory entities 16
Entity Characteristics - Granularity • Not primitives, wrappers, built-in objects • Are business domain objects that mean something • Should be fairly lightweight objects 17
Entity Manager • Interface encapsulating most persistence functionality • Set of managed instances is named persistence context 18
Queries • Use JPQL syntax • Can be defined statically (named) or dynamically • Dynamic queries supply query criteria 19
JPA’s future - Independence • Break free from the EJB specification • Will get it’s own JSR for future evolution 20
The End 5 minutes of question time starts now!
Questions 4 minutes left!
Questions 3 minutes left!
Questions 2 minutes left!
Questions 1 minute left!
Questions 30 seconds left!
Questions TIME IS UP!

Java Persistence API (JPA) - A Brief Overview