Java Persistence API (JPA) : A Brief Overview
Java Persistence API (JPA) : A Brief Overview
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
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
• Expert group
consisted of industry
ORM developers
5
JPA – Designed for Ease of Use
• Main goal of design
team
• 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
11
Aspects: Integration and Testability
• Challenge: Testing on
an app server
12
Entities
13
Entity Characteristics -
Persistability
• Entities must be persistable
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
20
The End
4 minutes left!
Questions
3 minutes left!
Questions
2 minutes left!
Questions
1 minute left!
Questions
30 seconds left!
Questions
TIME IS UP!