Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java Persistence API (JPA) - A Brief Overview

6,453 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
  • Be the first to comment

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!

×