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` — क्या यह सिर्फ जाँच है? यदि तालिका एंटिटी से मेल नहीं खाती तो क्या होगा?
3. यदि गलती से प्रोडक्शन डेटाबेस पर `create-drop` छोड़ दिया जाए तो क्या होगा?
मैं उदाहरणों के साथ विस्तृत स्पष्टीकरण के लिए आभारी रहूँगा। मैं समझना चाहता हूँ कि प्रोडक्शन पर क्या सुरक्षित है और क्या केवल डेवलपमेंट के लिए।