Java Persistence API (JPA) - A Brief Overview

5,745 views
5,470 views

Published on

This is a lightning presentation given by Scott Rabon, a member of my development team. He presents a high level overview of the JPA based on his first exposure to it.

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,745
On SlideShare
0
From Embeds
0
Number of Embeds
90
Actions
Shares
0
Downloads
158
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Java Persistence API (JPA) - A Brief Overview

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

×