Avatar ·

ما هي القيم التي يمكن أن يأخذها hibernate.hbm2ddl.auto وماذا تفعل؟

مرحباً بالجميع! أنا مطور Java مبتدئ، وأثناء تعلم Hibernate صادفت معامل التهيئة `hibernate.hbm2ddl.auto`. أعلم أنه مسؤول عن إدارة مخطط قاعدة البيانات، لكنني لا أستطيع فهم القيم التي يمكن تعيينها له وكيف تؤثر كل منها على الجداول. إليك مثال من ملف `application.properties` الخاص بي: ```properties spring.jpa.hibernate.ddl-auto=update ``` حالياً أستخدم `update`، ويبدو أنه يعمل: يتم إنشاء الجداول تلقائياً. لكنني رأيت أن في مشاريع مختلفة يكتبون `create` و `validate` و `none`. ماذا تعني هذه القيم؟ ما يقلقني بشكل خاص هو: 1. إذا قمت بتعيين `create`، هل سأفقد كل البيانات عند كل تشغيل؟ 2. و `validate` — هل هو مجرد فحص؟ ماذا يحدث إذا لم يتطابق الجدول مع الكيان (entity)؟ 3. ماذا سيحدث لقاعدة بيانات الإنتاج إذا تركت `create-drop` عن طريق الخطأ؟ سأكون ممتناً لشرح مفصل مع أمثلة. أريد أن أفهم ما هو آمن للاستخدام في الإنتاج وما هو مخصص فقط للتطوير.