تعمل Spring Data JPA، وهي جزء من عائلة Spring Data الأكبر، على تسهيل تنفيذ المستودعات المستندة إلى JPA. تتعامل هذه الوحدة مع الدعم المحسن لطبقات الوصول إلى البيانات المستندة إلى JPA. إنه يسهل إنشاء تطبيقات تعمل بنظام Spring والتي تستخدم تقنيات الوصول إلى البيانات.
لقد كان تنفيذ طبقة الوصول إلى البيانات لأحد التطبيقات أمرًا مرهقًا لفترة طويلة. يجب كتابة الكثير من التعليمات البرمجية المعيارية لتنفيذ استعلامات بسيطة بالإضافة إلى إجراء ترقيم الصفحات والتدقيق. يهدف Spring Data JPA إلى تحسين تنفيذ طبقات الوصول إلى البيانات بشكل كبير عن طريق تقليل الجهد المبذول إلى المبلغ المطلوب فعليًا. باعتبارك مطورًا، عليك كتابة واجهات المستودع الخاصة بك، بما في ذلك طرق البحث المخصصة، وسيوفر Spring التنفيذ تلقائيًا.
تنفيذ أساليب CRUD لكيانات JPA
إنشاء استعلام ديناميكي من أسماء طرق الاستعلام
التشغيل الشفاف لـ JPA NamedQueries عن طريق طرق الاستعلام
توفر الفئات الأساسية لنطاق التنفيذ الخصائص الأساسية
دعم التدقيق الشفاف (تم الإنشاء، آخر تغيير)
إمكانية دمج كود المستودع المخصص
تكامل Spring السهل مع مساحة الاسم المخصصة
يخضع هذا المشروع لمدونة قواعد السلوك الخاصة بالربيع. من خلال المشاركة، يُتوقع منك الالتزام بقواعد السلوك هذه. يرجى الإبلاغ عن السلوك غير المقبول إلى [email protected].
إليك إعلان تشويقي سريع لتطبيق يستخدم Spring Data Repositories في Java:
public interface PersonRepository extends CrudRepository < Person , Long > {
List < Person > findByLastname ( String lastname );
List < Person > findByFirstnameLike ( String firstname );
}
@ Service
public class MyService {
private final PersonRepository repository ;
public MyService ( PersonRepository repository ) {
this . repository = repository ;
}
public void doWork () {
repository . deleteAll ();
Person person = new Person ();
person . setFirstname ( "Oliver" );
person . setLastname ( "Gierke" );
repository . save ( person );
List < Person > lastNameResults = repository . findByLastname ( "Gierke" );
List < Person > firstNameResults = repository . findByFirstnameLike ( "Oli%" );
}
}
@ Configuration
@ EnableJpaRepositories ( "com.acme.repositories" )
class AppConfig {
@ Bean
public DataSource dataSource () {
return new EmbeddedDatabaseBuilder (). setType ( EmbeddedDatabaseType . H2 ). build ();
}
@ Bean
public JpaTransactionManager transactionManager ( EntityManagerFactory emf ) {
return new JpaTransactionManager ( emf );
}
@ Bean
public JpaVendorAdapter jpaVendorAdapter () {
HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter ();
jpaVendorAdapter . setDatabase ( Database . H2 );
jpaVendorAdapter . setGenerateDdl ( true );
return jpaVendorAdapter ;
}
@ Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory () {
LocalContainerEntityManagerFactoryBean lemfb = new LocalContainerEntityManagerFactoryBean ();
lemfb . setDataSource ( dataSource ());
lemfb . setJpaVendorAdapter ( jpaVendorAdapter ());
lemfb . setPackagesToScan ( "com.acme" );
return lemfb ;
}
}
أضف تبعية Maven:
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}</ version >
</ dependency >
إذا كنت تفضل الحصول على أحدث اللقطات من الإصدار الرئيسي القادم، فاستخدم مستودع لقطات Maven الخاص بنا وأعلن عن إصدار التبعية المناسب.
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}-SNAPSHOT</ version >
</ dependency >
< repository >
< id >spring-snapshot</ id >
< name >Spring Snapshot Repository</ name >
< url >https://repo.spring.io/snapshot</ url >
</ repository >
هل تواجه مشكلة مع بيانات الربيع؟ نحن نحب أن نساعد!
تحقق من الوثائق المرجعية وJavadocs.
تعلم أساسيات Spring - تعتمد Spring Data على Spring Framework، قم بمراجعة موقع Spring.io الإلكتروني للحصول على مجموعة كبيرة من الوثائق المرجعية. إذا كنت قد بدأت للتو مع فصل الربيع، فجرّب أحد الأدلة.
إذا كنت تقوم بالترقية، فاطلع على ملاحظات إصدار Spring Data JPA وانتقل لأسفل إلى الإصدار الذي تفكر فيه. شاهد التفاصيل هناك. (راجع أيضًا أحدث إصدار مستقر)
اطرح سؤالاً - نحن نراقب موقع stackoverflow.com للأسئلة الموسومة بـ spring-data-jpa
. يمكنك أيضًا الدردشة مع المجتمع على Gitter.
قم بالإبلاغ عن الأخطاء باستخدام Spring Data JPA في أداة تعقب مشكلات GitHub.
تستخدم Spring Data GitHub كنظام لتتبع المشكلات لتسجيل الأخطاء وطلبات الميزات. إذا كنت تريد إثارة مشكلة ما، يرجى اتباع التوصيات أدناه:
قبل تسجيل خطأ ما، يرجى البحث في أداة تعقب المشكلات لمعرفة ما إذا كان شخص ما قد أبلغ عن المشكلة بالفعل.
إذا لم تكن المشكلة موجودة بالفعل، قم بإنشاء مشكلة جديدة.
يرجى تقديم أكبر قدر ممكن من المعلومات مع تقرير المشكلة، ونود أن نعرف إصدار Spring Data الذي تستخدمه وإصدار JVM وتتبعات المكدس الكاملة وأي معلومات تكوين ذات صلة.
إذا كنت بحاجة إلى لصق التعليمات البرمجية، أو تضمين تتبع المكدس، فقم بتنسيقه كرمز باستخدام علامة backtick الثلاثية.
حاول، إن أمكن، إنشاء حالة اختبار أو مشروع يكرر المشكلة. قم بإرفاق رابط للكود الخاص بك أو ملف مضغوط يحتوي على الكود الخاص بك. استخدم قاعدة بيانات في الذاكرة إن أمكن أو قم بإعداد قاعدة البيانات باستخدام Testcontainers.
لا تحتاج إلى البناء من المصدر لاستخدام Spring Data (الثنائيات في repo.spring.io)، ولكن إذا كنت ترغب في تجربة الأحدث والأفضل، فيمكن إنشاء Spring Data بسهولة باستخدام المجمع المخضرم. تحتاج أيضًا إلى JDK 17 أو أعلى.
$ ./mvnw clean install
إذا كنت تريد الإنشاء باستخدام أمر mvn
العادي، فستحتاج إلى الإصدار Maven v3.8.0 أو أعلى.
راجع أيضًا CONTRIBUTING.adoc إذا كنت ترغب في إرسال طلبات السحب، وعلى وجه الخصوص يرجى التوقيع على اتفاقية المساهم قبل أول تغيير غير بسيط.
يؤدي إنشاء الوثائق أيضًا إلى إنشاء المشروع دون إجراء اختبارات.
$ ./mvnw clean install -Pantora
الوثائق التي تم إنشاؤها متاحة على target/antora/site/index.html
.
يحتوي موقع Spring.io على عدة أدلة توضح كيفية استخدام بيانات الربيع خطوة بخطوة:
الوصول إلى البيانات باستخدام JPA: تعرف على كيفية العمل مع ثبات بيانات JPA باستخدام Spring Data JPA.
يعد الوصول إلى بيانات JPA باستخدام REST دليلاً لإنشاء خدمة ويب REST للكشف عن البيانات المخزنة مع JPA من خلال المستودعات.
تحتوي أمثلة بيانات الربيع على أمثلة للمشاريع التي تشرح ميزات محددة بمزيد من التفاصيل.
Spring Data JPA هو برنامج مفتوح المصدر تم إصداره بموجب ترخيص Apache 2.0.