Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कैसे जेपीए का उपयोग कर मानचित्रण करते समय mysql में एक स्ट्रिंग की लंबाई बढ़ाने के लिए?

ऐसा इसलिए है क्योंकि VARCHAR . की डिफ़ॉल्ट लंबाई अधिकांश जेपीए प्रदाताओं (हाइबरनेट और एक्लिप्सलिंक सहित) द्वारा बनाए गए डीडीएल स्टेटमेंट में कॉलम 255 हैं। length निर्दिष्ट करना @Column . की विशेषता एनोटेशन मूल्य को ओवरराइड करने में मदद करता है, ताकि नया मान जेपीए प्रदाता के स्कीमा जनरेटर द्वारा उठाया जा सके।

यह गलत धारणा है। जेपीए प्रदाता केवल एक बार टेबल बनाएगा, और एप्लिकेशन के जीवनकाल के दौरान अंतर्निहित तालिका की लंबाई को गतिशील रूप से नहीं बदलेगा, और केवल तभी जब आप प्रदाता को तालिका परिभाषाओं को पहले स्थान पर बनाने/अपडेट करने के लिए कॉन्फ़िगर करते हैं। इसके अलावा, String . की डिफ़ॉल्ट मैपिंग SQL VARCHAR है टाइप करें।

ऐसा लगता है कि आपने जेपीए प्रदाता को इनिशियलाइज़ेशन प्रक्रिया के दौरान आवश्यकतानुसार (संभवतः उन्हें छोड़ने के बाद) टेबल बनाने के लिए कॉन्फ़िगर किया है। यदि आप हाइबरनेट का उपयोग कर रहे हैं, तो यह hibernate.hbm2ddl.auto का उपयोग करके किया जाता है persistence.xml . में निर्दिष्ट संपत्ति update . के मान के साथ , create या create-drop . एक्लिप्सलिंक के साथ, आप संपत्ति निर्दिष्ट करेंगे eclipselink.ddl-generation create-tables . के मान के साथ या drop-and-create-tables

उपरोक्त दोनों गुणों को उत्पादन में उपयोग के लिए अनुशंसित नहीं किया जाता है पर्यावरण . टेबल बनाने के लिए डीडीएल स्क्रिप्ट का आदर्श तरीका है। चूंकि, आप VARCHAR . का उपयोग कर रहे हैं , आपको कॉलम परिभाषा में उपयुक्त लंबाई निर्दिष्ट करनी चाहिए, उपयोगकर्ता इनपुट की अधिकतम लंबाई फिट करने के लिए . इसके अतिरिक्त, चूंकि आप VARCHAR . का उपयोग कर रहे हैं CHAR . से अधिक , डेटाबेस इंजन यह सुनिश्चित करेगा कि आवंटित संग्रहण स्थान संग्रहीत किए जा रहे रिकॉर्ड के आकार पर निर्भर करेगा।

यदि आपको डिफ़ॉल्ट VARCHAR के लिए String की आवश्यकता नहीं है मैपिंग करें और इसके बजाय किसी अन्य मान्य मैपिंग का उपयोग करें, तो आपको columnDefinition . का उपयोग करना चाहिए @Column . की विशेषता एनोटेशन। मैपिंग के लिए एक उदाहरण उपयोग Calendar TIMESTAMPTZ . पर SQL डेटाटाइप JPA WikiBook में दिखाया गया है।; आपको अपनी आवश्यकता के अनुसार इसे संशोधित करने की आवश्यकता होगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL बहुवचन/एकवचन खोजें

  2. MySQL कमांड की व्याख्या करें LIMIT को अनदेखा करें?

  3. सभी तालिकाओं के माध्यम से लूप करें और एक कॉलम का नाम बदलें

  4. यदि डेटाबेस बदलता है तो सामग्री को स्वचालित रूप से ताज़ा करें

  5. पोस्टग्रेस्क्ल में DATE_FORMAT