JPA مقابل السبات
جميع تطبيقات المؤسسة تقريبًا مطلوبة للوصول إلى قواعد البيانات العلائقية بانتظام. لكن المشكلة التي واجهتها التقنيات السابقة (مثل JDBC) كانت عدم تطابق المعاوقة (الفرق بين التقنيات الموجهة للكائنات والعلائقية). تم تقديم حل لهذه المشكلة من خلال إدخال طبقة مجردة تسمى طبقة الثبات ، والتي تلخص الوصول إلى قاعدة البيانات من منطق الأعمال. JPA (Java Persistence API) عبارة عن إطار عمل مخصص لإدارة البيانات العلائقية (باستخدام طبقة الاستمرارية) في تطبيقات Java. هناك العديد من تطبيقات البائعين لـ JPA المستخدمة في مجتمع مطوري Java. Hibernate هو التطبيق الأكثر شيوعًا لـ JPA (DataNucleus و EclipseLink و OpenJPA هي بعض التطبيقات الأخرى). أحدث إصدار من JPA (JPA 2.0) مدعوم بالكامل بواسطة Hibernate 3.5 ، والذي تم إصداره في مارس 2010.
ما هو JPA؟
JPA هو إطار عمل لإدارة البيانات العلائقية لجافا. يمكن استخدامه مع التطبيقات التي تستخدم JSE (Java Platform ، Standard Edition) أو JEE (Java Platform ، Enterprise Edition). نسخته الحالية هي JPA 2.0 ، والتي تم إصدارها في 10 ديسمبر 2009. استبدلت JPA حبوب الكيان EJB 2.0 و EJB 1.1 (والتي تعرضت لانتقادات شديدة لكونها ثقيلة الوزن من قبل مجتمع مطوري Java). على الرغم من أن وحدات فول الكيان (في EJB) توفر كائنات ثابتة ، فقد تم استخدام العديد من المطورين لاستخدام كائنات خفيفة الوزن نسبيًا تقدمها DAO (كائنات الوصول إلى البيانات) وأطر أخرى مماثلة بدلاً من ذلك. نتيجة لذلك ، تم تقديم JPA ، والتقط العديد من الميزات الأنيقة للأطر المذكورة أعلاه.
الثبات كما هو موضح في JPA يغطي واجهة برمجة التطبيقات (المحددة في javax.المثابرة) و JPQL (Java Platform، Enterprise Edition) والبيانات الوصفية المطلوبة للكائنات العلائقية. عادة ما يتم الإبقاء على حالة الكيان المستمر في الجدول. تتوافق مثيلات الكيان مع صفوف جدول قاعدة البيانات العلائقية. تستخدم البيانات الوصفية للتعبير عن العلاقات بين الكيانات. تستخدم التعليقات التوضيحية أو ملفات واصفات XML المنفصلة (المنشورة مع التطبيق) لتحديد البيانات الوصفية في فئات الكيانات. يتم استخدام JPQL ، التي تشبه استعلامات SQL ، للاستعلام عن الكيانات المخزنة.
ما هو السبات؟
Hibernate هو إطار عمل يمكن استخدامه لرسم الخرائط العلائقية للكائنات المخصصة للغة برمجة Java. وبشكل أكثر تحديدًا ، هي مكتبة ORM (رسم خرائط الكائنات) التي يمكن استخدامها لتعيين نموذج كائن العلائقية في النموذج العلائقي التقليدي. بعبارات بسيطة ، يقوم بإنشاء تعيين بين فئات Java والجداول في قواعد البيانات العلائقية ، وأيضًا بين أنواع بيانات Java إلى SQL. يمكن أيضًا استخدام Hibernate للاستعلام عن البيانات واستردادها عن طريق إنشاء استدعاءات SQL.لذلك ، يتم إعفاء المبرمج من المعالجة اليدوية لمجموعات النتائج وتحويل الكائنات. تم إصدار Hibernate كإطار عمل مجاني ومفتوح المصدر موزع بموجب ترخيص GNU. يتم توفير تطبيق لـ JPA API في Hibernate 3.2 والإصدارات الأحدث. غافن كينغ هو مؤسس Hibernate
ما الفرق بين JPA و Hibernate؟
JPA هو إطار عمل لإدارة البيانات العلائقية في تطبيقات Java ، بينما Hibernate هو تنفيذ محدد لـ JPA (لذلك من الناحية المثالية ، لا يمكن مقارنة JPA و Hibernate بشكل مباشر). بمعنى آخر ، يعد Hibernate أحد أكثر الأطر شيوعًا التي تنفذ JPA. يقوم Hibernate بتنفيذ JPA من خلال Hibernate Annotation و EntityManager مكتبات يتم تنفيذها أعلى مكتبات Hibernate Core. يتبع كل من EntityManager والتعليقات التوضيحية دورة حياة Hibernate. أحدث إصدار من JPA (JPA 2.0) مدعوم بالكامل بواسطة Hibernate 3.5. تتمتع JPA بميزة وجود واجهة موحدة ، لذلك سيكون مجتمع المطورين أكثر دراية بها من Hibernate.من ناحية أخرى ، يمكن اعتبار واجهات برمجة تطبيقات Hibernate الأصلية أكثر قوة لأن ميزاتها هي مجموعة شاملة من ميزات JPA.