स्प्रिंग बूट जेपीए में कॉलम एनोटेशन ओवरराइडिंग को समझना
स्प्रिंग बूट जेपीए, एक लोकप्रिय ओआरएम ढांचा, डेवलपर्स को @कॉलम के साथ इकाइयों को एनोटेट करने की अनुमति देता है डेटाबेस में विशिष्ट कॉलम नाम निर्दिष्ट करें। हालाँकि, यह देखा गया है कि कुछ परिदृश्यों में, JPA @Column एनोटेशन को अनदेखा कर सकता है और डेटाबेस स्कीमा में प्रॉपर्टी नाम के अंडरस्कोर-केस संस्करण में डिफ़ॉल्ट हो सकता है।
JPA कॉलम एनोटेशन को क्यों अनदेखा कर सकता है
जेपीए द्वारा @कॉलम एनोटेशन को अनदेखा करने का एक संभावित कारण अंतर्निहित हाइबरनेट द्वारा उपयोग की जाने वाली नामकरण रणनीति हो सकती है रूपरेखा। डिफ़ॉल्ट रूप से, हाइबरनेट org.hibernet.cfg.ImprovedNamingStrategy रणनीति का उपयोग करता है, जो @Column एनोटेशन की परवाह किए बिना स्नेक केस कॉलम नाम उत्पन्न करता है।
समाधान: EJB3 नामकरण रणनीति
इस समस्या को हल करने और यह सुनिश्चित करने के लिए कि जेपीए @ कॉलम एनोटेशन का सम्मान करता है, आप स्पष्ट रूप से सेट कर सकते हैं नामकरण रणनीति को org.hibernet.cfg.EJB3NamingStrategy पर हाइबरनेट करें। यह रणनीति @कॉलम एनोटेशन में निर्दिष्ट केस और कैरेक्टर स्पेसिंग को सुरक्षित रखेगी। एक अलग मुद्दा जहां हाइबरनेट org.hibernet.dialect.SQLServerDialect बोली का उपयोग करता है। यह बोली नामकरण में असंगति पैदा कर सकती है, जहां जेपीए ईजेबी3 नामकरण रणनीति के साथ भी मिश्रित केस कॉलम नामों का उपयोग कर सकता है।
विरासत निहित और भौतिक नामकरण रणनीतियाँ
पता करने के लिए इस समस्या के लिए, आप अपने एप्लिकेशन.प्रॉपर्टीज़ में निम्नलिखित गुण जोड़ सकते हैं फ़ाइल:
spring.jpa.hibernet.naming.implicit-strategy=org.hiberdate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl स्प्रिंग.jpa.hiberate.naming.physical-strategy=org.hiberate.boot.model.naming.PhysicalNamingStrategyStandardImpl
ये सेटिंग्स हाइबरनेट को लिगेसी इंप्लिसिट और स्टैंडर्ड फिजिकल नेमिंग रणनीतियों का उपयोग करने के लिए बाध्य करेंगी, जो यह सुनिश्चित करेगी कि @कॉलम एनोटेशन का सम्मान किया जाता है, और कॉलम नाम लगातार उत्पन्न होते हैं।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3