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.