मैंने कल सभी को हाइबरनेट पर विभिन्न लेख/ट्यूटोरियल पढ़ने में बिताया और हालांकि मैं उड़ा हुआ कितना शक्तिशाली है, इसके साथ मुझे एक बड़ी चिंता है।क्या हाइबरनेट को डेटाबेस डिज़ाइन ड्राइव करना है?
ऐसा लगता है कि मानक अभ्यास है Hibernate को आपके डीबी स्कीमा को के लिए डिज़ाइन/जेनरेट करने की अनुमति देता है, जो कि एक नई और डरावनी अवधारणा है जिसे मैं चकित कर रहा हूं। मैंने पढ़े गए ट्यूटोरियल से, आप बस अपनी hibernate.cfg.xml
कॉन्फ़िगरेशन फ़ाइल में एक नई इकाई जोड़ें, @Entity
के साथ इच्छित किसी भी POJO को एनोटेट करें, और वॉयला - हाइबरनेट आपके लिए टेबल बनाता है।
- क्या होगा अगर आप पहले से ही एक DB स्कीमा और एक हाइबरनेट आप इसे के अनुरूप नहीं है के लिए उत्पन्न करने के लिए चाहता है: हालांकि यह बहुत अच्छा है, यह मेरे परिदृश्यों के एक मुट्ठी भर के बारे में सोच है? क्या होगा यदि आपके पास पागल डीबीए है जो प्री-डिफ़ाइंड (गैर-हाइबरनेट) स्कीमा पर झुकाव से इंकार कर देता है?
- क्या होगा यदि आपके पास हजारों रिकॉर्ड (दुनिया के सभी शहरों की तरह) के साथ संदर्भ तालिकाओं हैं? क्या आपको तुरंत और
save()
हजारों अद्वितीय POJOs को चालू करना होगा या क्या हाइबरनेट को कॉन्फ़िगर करने का कोई तरीका है, जिससे यह आपके टेबल में पहले से मौजूद डेटा को सम्मानित और ओवरराइट नहीं करेगा? - यदि आप अपनी स्कीमा/टेबल पर पेर्फ ट्यूनिंग करना चाहते हैं तो क्या होगा? इसमें इंडेक्सिंग शामिल है, जो हाइबरनेट स्वचालित रूप से बनाता है ऊपर और परे सामान्यीकृत?
- यदि आप अपनी तालिकाओं में बाधाएं या ट्रिगर्स जोड़ना चाहते हैं तो क्या होगा? इंडेक्स?
मैं इस की जड़ में लगता है निम्नलिखित:
ऐसा लगता है कि हाइबरनेट बनाता है और अपने डीबी पर एक विशेष स्कीमा/config बलों की तरह। मैं सोच रहा हूं कि यह एजेंडा हमारे प्लेटफार्म मानकों, हमारे डीबीए दर्शनों, और हाइबरनेट के साथ बातचीत करने वाली ट्यून/ट्विक टेबल को टर्न करने की हमारी क्षमता के साथ कैसे संघर्ष करेगा।
अग्रिम धन्यवाद।
असल में, आपको इसे किसी भी पर सेट करना चाहिए, और अपनी अपडेट प्रक्रिया के हिस्से के रूप में स्कीमा अपडेट करना चाहिए। यह एंटरप्राइज़ दुनिया में काफी मानक है। – Matt