ऊपर सूचीबद्ध मुद्दों का उत्तर देना:
1. हाइबरनेट "मौजूदा" डेटाबेस से कनेक्ट नहीं हो सकता है। यह हमेशा अपना एक बनाने का प्रयास करता है।
ये गलत है। हाइबरनेट कर सकते हैं किसी मौजूदा डेटाबेस से कनेक्ट करें, और यह हमेशा इसे फिर से बनाने का प्रयास नहीं करता है। आपको बस hbm2ddl. auto
।
2. हमारा डेटाबेस उसी एप्लिकेशन द्वारा एक्सेस कर सकता है जो विभिन्न प्लेटफॉर्म (क्लाउड, सर्वर, वीपीएस, पर्सनल कंप्यूटर) में है। इस स्थिति में कैशिंग के कारण हाइबरनेट समस्याएँ पैदा कर सकता है।
हाइबरनेट में एक समायोज्य कैश है, इसलिए यह भी कोई समस्या नहीं है।
3. हम जावा कोड को "टेबल बनाने का काम" देना कभी पसंद नहीं करते हैं। हम हमेशा मैन्युअल रूप से टेबल बनाते हैं।
कोई बात नहीं। ऊपर p.1 देखें। इसके अलावा अप्रत्यक्ष तालिका निर्माण और अद्यतन के लिए कई विश्वसनीय पुस्तकालय हैं (उदाहरण के लिए liquibase ) जिसे हाइबरनेट के साथ जोड़े में पूरी तरह से इस्तेमाल किया जा सकता है।
4. हमें बहुत लंबे और जटिल SQL कथनों का उपयोग करना पड़ सकता है। पिछली बार हमने 150 से अधिक पंक्तियों वाले एक कथन का उपयोग किया था, जो 20 से अधिक तालिकाओं को मिलाता था। हमें संदेह है कि जब हाइबरनेट की बात आती है तो हमें इसमें परेशानी का सामना करना पड़ेगा या नहीं।
आप हमेशा सीधे JDBC कॉल का उपयोग कर सकते हैं और यदि आवश्यक हो तो हाइबरनेट के माध्यम से देशी SQL क्वेरीज़ का आह्वान कर सकते हैं।
5. हमारा SQL कोड अच्छा और मानक है। हाइबरनेट उत्पन्न कोड हमारे लिए थोड़ा गंदा लगता है।
दोबारा, अगर आपको हाइबरनेट ऑटो-जेनरेटेड के बजाय कुछ तर्क जटिल एसक्यूएल कोड का आह्वान करना है - तो आप इसे कर सकते हैं।
6. हम हमेशा MySQL का उपयोग करते हैं। कभी भी किसी अन्य DB का उपयोग न करें।
कोई दिक्कत नहीं। हाइबरनेट में विशेष MySQL बोली समर्थन है:org.hibernate.dialect.MySQLDialect
।
7. हमारे द्वारा बनाए गए एप्लिकेशन को चिकित्सा से संबंधित अधिकतम सुरक्षा की आवश्यकता होती है। यदि कम से कम एक डेटा रिकॉर्ड लीक हो जाता है, तो हम कर चुके हैं।
सुरक्षा समस्याएं ORM तकनीकों से संबंधित नहीं हैं। Hibernate
शुद्ध डेटाबेस JDBC कॉल और प्रोग्रामर टूल्स के बीच सिर्फ तार्किक और विश्वसनीय वस्तु-उन्मुख परत है। यह सामान्य नेट सुरक्षा पर किसी तरह का प्रभाव नहीं डालता है।