يعد Hibernate ORM حلاً قويًا لرسم الخرائط للكائنات/العلائقية لـ Java، ويجعل من السهل تطوير منطق الثبات للتطبيقات والمكتبات وأطر العمل.
يطبق Hibernate JPA، واجهة برمجة التطبيقات القياسية لاستمرارية الكائنات/العلاقات في Java، ولكنه يقدم أيضًا مجموعة واسعة من الميزات وواجهات برمجة التطبيقات التي تتجاوز المواصفات.
راجع Hibernate.org لمزيد من المعلومات.
يستخدم Hibernate كلاً من Jenkins وGitHub Actions لتلبية احتياجات CI الخاصة به. يرى
وظائف جينكينز
وظائف إجراءات جيثب
يتطلب البناء Java 11 على الأقل وJava 17 على الأكثر.
يستخدم Hibernate Gradle كأداة بناء خاصة به. راجع قسم Gradle Primer أدناه إذا كنت جديدًا في Gradle.
يجب على المساهمين قراءة دليل المساهمة.
راجع الأدلة الخاصة بإعداد IntelliJ أو Eclipse كبيئة التطوير الخاصة بك.
تحتوي أداة بناء Gradle على وثائق مذهلة. 2 ـ على وجه الخصوص التي لا غنى عنها:
يعد دليل مستخدم Gradle دليل مستخدم نموذجيًا لأنه يتبع منهجًا موضعيًا لوصف جميع إمكانيات Gradle.
يعد دليل Gradle DSL فريدًا وممتازًا في الوصول بسرعة إلى جوانب معينة من Gradle.
سنغطي الأساسيات التي يحتاج المطورون والمساهمون الجدد في Gradle إلى معرفتها لتحقيق الإنتاجية بسرعة.
ملحوظة | يحدد المشروع Gradle Wrapper. سيتم تنفيذ بقية القسم من خلال المجمع. |
يستخدم Gradle مفهوم مهام البناء (أي ما يعادل أهداف Ant أو مراحل/أهداف Maven). يمكنك الحصول على قائمة بالمهام المتاحة عبر
المهام المتدرجة
لتنفيذ مهمة عبر جميع الوحدات، ما عليك سوى تنفيذ هذه المهمة من الدليل الجذر. سيقوم Gradle بزيارة كل مشروع فرعي وتنفيذ هذه المهمة إذا حددها المشروع الفرعي. لتنفيذ مهمة في وحدة نمطية معينة، يمكنك إما:
cd
في دليل الوحدة هذا وتنفيذ المهمة
قم بتسمية "مسار المهمة". على سبيل المثال، لتشغيل اختبارات وحدة السبات الأساسية من الدليل الجذر، يمكنك قول gradle hibernate-core:test
تتضمن المهام الشائعة التي قد تستخدمها في إنشاء وضع السبات ما يلي:
بناء - تجميع (الجرار) واختبار هذا المشروع
ترجمة - ينفذ جميع مهام الترجمة بما في ذلك الموارد المرحلية من كل من المصدر الرئيسي والاختبار
jar - يقوم بإنشاء أرشيف جرة يحتوي على كافة الفئات المجمعة
اختبار - يدير الاختبارات
PublishToMavenLocal - يقوم بتثبيت جرة المشروع على ذاكرة التخزين المؤقت المحلية الخاصة بك (ويعرف أيضًا باسم ~/.m2/repository). لاحظ أن Gradle لا يستخدم هذا مطلقًا، ولكنه قد يكون مفيدًا لاختبار الإصدار الخاص بك مع الإصدارات المحلية الأخرى المستندة إلى Maven.
نظيف - ينظف دليل البناء
يمكن إجراء الاختبار على قاعدة بيانات محددة بطريقتين مختلفتين:
سيأتي لاحقا…
يحدد إصدار Hibernate عدة "ملفات تعريف" لاختبار قواعد البيانات في databases.gradle
. يمكن تنشيط ملفات التعريف هذه بالاسم باستخدام خاصية بناء db
والتي يمكن تمريرها إما كخاصية نظام JVM ( -D
) أو كخاصية مشروع Gradle ( -P
). تستخدم الأمثلة أدناه نهج خاصية مشروع Gradle.
بناء نظيف gradle -Pdb=pgsql
لإجراء اختبار من IDE الخاص بك، تحتاج إلى التأكد من حدوث توسعات الخاصية. استخدم الأمر التالي:
ترجمة نظيفة gradle -Pdb=pgsql
ملاحظة: إذا كنت تقوم بإجراء اختبارات على برنامج تشغيل JDBC غير متوفر عبر Maven Central، فتأكد من إضافة برامج التشغيل هذه إلى ذاكرة التخزين المؤقت Maven repo المحلية (~/.m2/repository) أو (الأفضل) إضافتها إلى خادم Maven repo شخصي
يمكنك إجراء أي اختبار على أي قاعدة بيانات معينة تم تكوينها في ملف تعريف databases.gradle
.
كل ما عليك فعله هو تشغيل الأمر التالي:
./gradlew setDataBase -Pdb=pgsql
أو يمكنك استخدام إصدار الاختصار:
./gradlew sDB -Pdb=pgsql
يمكنك القيام بذلك من الوحدة التي ترغب في اختبارها أو من المجلد الجذر hibernate-orm
.
بعد ذلك، ما عليك سوى اختيار أي اختبار من IDE وتشغيله كالمعتاد. سوف يقوم Hibernate باختيار تكوين قاعدة البيانات من ملف hibernate.properties
الذي تم إعداده بواسطة مهمة setDataBase
Gradle.
لا يتعين عليك تثبيت جميع قواعد البيانات محليًا لتتمكن من اختبارها في حالة توفر عامل إرساء. يتيح لك البرنامج النصي docker_db.sh
بدء قاعدة بيانات تم تكوينها مسبقًا والتي يمكن استخدامها للاختبار.
كل ما عليك فعله هو تشغيل الأمر التالي:
./docker_db.sh postgresql
سيؤدي حذف الوسيطة إلى طباعة قائمة بالخيارات الممكنة.
عند بدء تشغيل قاعدة البيانات بشكل صحيح، يمكنك إجراء اختبارات باستخدام ملفات تعريف خاصة ملحقة بـ _ci
على سبيل المثال pgsql_ci
لـ PostgreSQL. باستخدام خاصية النظام dbHost
يمكنك تكوين عنوان IP لمضيف عامل الإرساء الخاص بك.
قد يبدو الأمر الخاص بإجراء الاختبارات كما يلي:
./gradlew test -Pdb=pgsql_ci "-DdbHost=192.168.99.100"
يوضح الجدول التالي قائمة بالأوامر لقواعد البيانات المختلفة التي يمكن اختبارها محليًا.
قاعدة البيانات | docker_db.sh | أمر Gradle |
---|---|---|
H2 | - | |
HSQLDB | - | |
أباتشي ديربي | - | |
ماي إس كيو إل | | |
ماريا دي بي | | |
PostgreSQL | | |
EnterpriseDB | | |
أوراكل | | |
DB2 | | |
خادم SQL | | |
سايبيس بورصة عمان (jTDS) | | |
سايبيس بورصة عمان (jConnect) | | |
ساب هانا | | |
صرصورDB | | |
تي دي بي | | |
إنفورميكس | | |
لإيقاف حاوية بدأها docker
، استخدم الأمر
docker stop $container_name
استبدل أمر podman
بـ docker
في حالة استخدام podman
على سبيل المثال، لإيقاف حاوية mariadb
docker stop mariadb