spring - الربيع+السبات مقابل بيانات الربيع JPA: هل هم مختلفون؟




hibernate spring-data-jpa (2)

على الرغم من أنني لست مبتدئًا ، إلا أنني أحاول تعلم إطار الربيع (مرة أخرى!) من أجل التأكد من أنني أفهم ذلك حقًا. لدي فكرة عادلة عن النبع الأساسي (DI). الآن ، أنا أركز على طبقة البيانات.

لقد صادفت عبارة " الربيع والسبات ". كما يمكنني تفسير ذلك سيعني استخدام Spring Framework مع Hibernate كأداة ORM / JPA.

الآن لقد صادفت " Spring Data JPA ". أوضحت في SO حول Spring Data JPA ، أنها طبقة تجريدية أعلى JPA (وتحت غطاء Spring Data JPA تستخدم إسبات أو أي مزود JPA آخر).

الآن هذه الشروط نفسها؟ وهذا يعني أن " Spring + Hibernate " هي نفس " Spring Data JPA ". إذا لم يكن كذلك ، فما هو الفرق / أوجه التشابه؟

أنا في حيرة من أمري في الكثير من العبارات / العبارات (مثل ما سبق) تبدو متشابهة ، ولكنها قد تكون مختلفة.


تقدم لك Spring-data-jpa ، كما ترون ، المزيد من الدمج الكلاسيكي لـ Spring-JPA. مع دمج JPA / Hibernate ، ستحصل بشكل أساسي

  • إدارة المعاملات التصريحات باستخدام معاملات JPA / Hibernate
  • ترجمة استثناء
  • JPA EntityManager أو الدورة Heapnate SessionFactory كفول قابلة للحقن

باستخدام Spring-data-jpa ، ستحصل على كل ذلك ، بالإضافة إلى ذلك (من بين أشياء أخرى)

  • مستودعات واجهة فقط ، باستخدام أسماء الأسلوب لاستنتاج الاستعلامات تلقائيًا
  • @ تعليق توضيحي لتحديد الاستعلام الذي يجب أن تعود به طريقة الواجهة
  • المعالجة التلقائية للاستعلامات Pageable
  • الفصول الأساسية لمستودعات الخام القياسية

هذا هو مجرد مقدمة صغيرة. لمزيد من المساعدة ، اقرأ الوثائق.


عندما تتحدث عن الربيع + السبات

  1. إذا كنت تقرأ السبات وحدها ، فستفهم أنه يستخدم التعيين (وهو أساسًا تكوين لتخطيط pojo مع علاقات قواعد البيانات) والتكوين (تكوين خاص بقاعدة البيانات مثل فئة المشغل ، عنوان url ، اسم المستخدم ، كلمة المرور ، اللهجة إلخ.).
  2. حتى الآن إذا كنت ترغب في استخدام القراءة والكتابة والتحديث وما إلى ذلك ، يجب أن تحصل على hibernatesessionfactory ، فتح الصفقة والالتزام. الكثير من العمل قبل وبعد كل عملية.
  3. عندما تقوم بدمج السبات مع الربيع ، فإن الربيع يستخدم هذا التكوين ويحتفظ به في سياق التطبيق ، ويوفر غلافًا هو عبارة عن hibernatetemplate والذي يستخدم داخليًا في hibernatesessionfactory . لذلك أنت لا تحتاج إلى رعاية الكثير عن ما قبل وما بعد رمز أثناء القيام بهذه العمليات.
  4. كما يوفر التخزين المؤقت (ذاكرة التخزين المؤقت للمستوى الأول والثاني) لتحسين الأداء.
  5. وأعطيك أيضا للعمل مع HQL وهو مستقل عن database.It يستخدم لهجة قاعدة بيانات لتوليد SQL قاعدة بيانات محددة.

الآن دعونا نتحدث عن الربيع + بيانات jpa

  1. لأنه يأتي مع واجهات مستودع قاعدة (من بيانات الربيع المشتركة ، ربيع jpa)
  2. لذا لنفترض أنك مهتم بعمل عملية صقل الخام ، فما عليك سوى توسيع crud repository ، وسوف يضخ الربيع عملية التنفيذ في وقت التشغيل.
  3. لنفترض أنك تريد تحديد طريقة شائعة للتطبيق ، يمكنك القيام بذلك عن طريق إنشاء واجهة مستودع تخزين جديدة تعمل على توسعة واجهة مستودع التخزين. ويمكن استخدام هذا عبر التطبيق.
  4. كما يوفر طرق الاستعلام التي تسمح لك باستخدام sql or jpql. الأصلي sql or jpql.






spring-orm