JPA - บทนำ
แอปพลิเคชันขององค์กรใด ๆ ดำเนินการฐานข้อมูลโดยการจัดเก็บและดึงข้อมูลจำนวนมหาศาล แม้จะมีเทคโนโลยีทั้งหมดสำหรับการจัดการสตอเรจ แต่โดยปกติแล้วนักพัฒนาแอปพลิเคชันจะพยายามดำเนินการฐานข้อมูลอย่างมีประสิทธิภาพ
โดยทั่วไปนักพัฒนา Java จะใช้โค้ดจำนวนมากหรือใช้เฟรมเวิร์กที่เป็นกรรมสิทธิ์เพื่อโต้ตอบกับฐานข้อมูลในขณะที่การใช้ JPA ภาระในการโต้ตอบกับฐานข้อมูลจะลดลงอย่างมาก สร้างสะพานเชื่อมระหว่างโมเดลวัตถุ (โปรแกรม Java) และโมเดลเชิงสัมพันธ์ (โปรแกรมฐานข้อมูล)
ไม่ตรงกันระหว่างโมเดลเชิงสัมพันธ์และแบบจำลองวัตถุ
วัตถุเชิงสัมพันธ์จะแสดงในรูปแบบตารางในขณะที่แบบจำลองวัตถุจะแสดงในรูปแบบกราฟที่เชื่อมต่อกัน ในขณะที่จัดเก็บและดึงโมเดลอ็อบเจ็กต์จากฐานข้อมูลเชิงสัมพันธ์ความไม่ตรงกันบางอย่างเกิดขึ้นเนื่องจากสาเหตุต่อไปนี้:
- Granularity : แบบจำลองวัตถุมีความละเอียดมากกว่าแบบจำลองเชิงสัมพันธ์ 
- Subtypes : ชนิดย่อย (หมายถึงการสืบทอด) ไม่ได้รับการสนับสนุนโดยฐานข้อมูลเชิงสัมพันธ์ทุกประเภท 
- Identity : เช่นเดียวกับโมเดลวัตถุโมเดลเชิงสัมพันธ์จะไม่เปิดเผยตัวตนในขณะที่เขียนความเท่าเทียมกัน 
- Associations : โมเดลเชิงสัมพันธ์ไม่สามารถกำหนดความสัมพันธ์หลาย ๆ ความสัมพันธ์ได้ในขณะที่มองหาโมเดลโดเมนออบเจ็กต์ 
- Data navigation : การนำทางข้อมูลระหว่างอ็อบเจ็กต์ในเครือข่ายอ็อบเจ็กต์แตกต่างกันในทั้งสองรุ่น 
JPA คืออะไร?
Java Persistence API คือชุดของคลาสและวิธีการในการจัดเก็บข้อมูลจำนวนมหาศาลอย่างต่อเนื่องลงในฐานข้อมูลที่ Oracle Corporation จัดเตรียมไว้ให้
ใช้ JPA ได้ที่ไหน?
เพื่อลดภาระในการเขียนโค้ดสำหรับการจัดการอ็อบเจ็กต์เชิงสัมพันธ์โปรแกรมเมอร์จะปฏิบัติตามกรอบ 'ผู้ให้บริการ JPA' ซึ่งช่วยให้โต้ตอบกับอินสแตนซ์ฐานข้อมูลได้ง่าย ที่นี่กรอบที่ต้องการถูกยึดครองโดย JPA
 
                ประวัติ JPA
เวอร์ชันก่อนหน้าของ EJB เลเยอร์การคงอยู่ที่กำหนดไว้รวมกับเลเยอร์ตรรกะทางธุรกิจโดยใช้อินเทอร์เฟซ javax.ejb.EntityBean
- ในขณะที่แนะนำ EJB 3.0 เลเยอร์การคงอยู่ถูกแยกออกและระบุเป็น JPA 1.0 (Java Persistence API) ข้อมูลจำเพาะของ API นี้เผยแพร่พร้อมกับข้อกำหนดของ JAVA EE5 เมื่อวันที่ 11 พฤษภาคม 2549 โดยใช้ JSR 220 
- JPA 2.0 เปิดตัวพร้อมข้อกำหนดของ JAVA EE6 เมื่อวันที่ 10 ธันวาคม 2552 โดยเป็นส่วนหนึ่งของ Java Community Process JSR 317 
- JPA 2.1 เปิดตัวพร้อมข้อมูลจำเพาะของ JAVA EE7 เมื่อวันที่ 22 เมษายน 2013 โดยใช้ JSR 338 
ผู้ให้บริการ JPA
JPA เป็น API แบบโอเพ่นซอร์สดังนั้นผู้จำหน่ายระดับองค์กรต่างๆเช่น Oracle, Redhat, Eclipse และอื่น ๆ จึงจัดหาผลิตภัณฑ์ใหม่โดยการเพิ่มรสชาติการคงอยู่ของ JPA ลงไป ผลิตภัณฑ์เหล่านี้บางส่วน ได้แก่ :
Hibernate, Eclipselink, Toplink, Spring Data JPA, etc.