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.