मेरे पास एक मौजूदा डेटाबेस है जिसे मैं अब हाइबरनेट का उपयोग करने के लिए कनेक्ट कर रहा हूं। मैं फिलहाल इसमें डेटा नहीं बदल सकता और सब कुछ एक कॉलम से अलग काम कर रहा हूं।हाइबरनेट एनम मैपिंग एनोटेशन का उपयोग करके
- नई
- में भेज दिया
- बाहर
और स्तंभ के रूप में निम्नानुसार मैप किया गया है:
मैं एक स्थिति कॉलम मानों है
@Column(name = "STATUS", nullable = false, length = 50)
@Enumerated(EnumType.STRING)
private TeamMemberStatus status;
मैं जावा कॉलम (टीममेम्बरस्टैटस), के रूप में इस कॉलम को मैप करने के लिए वास्तव में (एप्लिकेशन कारणों के लिए) पसंद करूंगा, लेकिन इस तथ्य के कारण कि 'नया' जावा में कोई कीवर्ड है, इसलिए मुझे यह एनम सदस्य नहीं हो सकता है।
यदि मेरे पास enum contstants है, तो नया, मैलाइड, इन और आउट हाइबरनेट एनमटाइप के अंदर विफल रहता है, यह Enum.valueOf() करता है।
क्या कोई जटिल उपयोगकर्ता टाइप टाइप किए बिना मेरे एनम में इसे मैप करने का कोई तरीका है?
- जोड़ा सामग्री
मेरे इस तरह Enum:
public enum TeamMemberStatus {
NEW, MAILED, IN, OUT
}
एक वैध जावा enum है, लेकिन डेटाबेस के मामले मिलान नहीं। यदि मैं इसे डेटाबेस से मेल खाने के लिए बदलता हूं जैसे:
public enum TeamMemberStatus {
new, mailed, in, out
}
यह 'नया' जावा आरक्षित शब्द के रूप में संकलित नहीं होगा।
मुझे लगता है कि आप डेटाबेस में डेटा को बदलने का मतलब है? अद्यतन तालिका सेट स्थिति = ऊपरी (स्थिति) जैसे कुछ। मैं ऐसा नहीं कर सकता क्योंकि यह मौजूदा अनुप्रयोगों को तोड़ देगा जो उस डेटा से बात करते हैं जो इसे लोअरकेस मान के रूप में अपेक्षा करता है। – stevemac
@stevemac अपडेट किया गया –
जो मैंने अंत में काम किया था, मूल रूप से स्ट्रिंग को आंतरिक रूप से स्टोर करते हैं और प्राप्त/सेट के कॉल होने पर इसे एनम से/मानचित्र पर मैप करते हैं। इसे अल्प अवधि के लिए करना होगा, जब तक कि मैं अपरकेस स्थिरांक का उपयोग करने के लिए अद्यतन सभी ऐप्स प्राप्त नहीं कर सकता। – stevemac