2009-03-27 2 views
10

यह हमारे अनुप्रयोगों में एक आम स्थिति है कि कुछ इकाई को एक enum द्वारा प्रतिनिधित्व किया जाना चाहिए: उदाहरण के लिए प्रकार, श्रेणियां, स्थिति, और ऐसी चीजें।जावा एनम और डेटाबेस तालिका के बीच डुप्लिकेशंस को कैसे संभालें?

अक्सर, कोड में स्थितियां या प्रवाह होते हैं जो मूल्यों का उपयोग एक क्रिया या किसी अन्य के बीच तय करने के लिए करते हैं, इसलिए मूल्यों को एप्लिकेशन के लिए किसी भी तरीके से "ज्ञात" होना चाहिए (यानी इसे संदर्भित करने में सक्षम होना चाहिए पूरी तरह कक्षा को संदर्भित करने के बजाय निर्णय लेने के लिए एक विशिष्ट उदाहरण के लिए)। यही कारण है कि हम केवल एक नियमित कक्षा के बजाय enums का उपयोग करें।

समस्या यह है कि इन इकाइयों को अन्य संस्थाओं के क्षेत्र के रूप में डेटाबेस में संग्रहीत (या कम से कम संदर्भित) की आवश्यकता होती है। हम आम तौर पर इन कॉलम में रेफरेंसियल अखंडता जांच करने में सक्षम होने के लिए प्रत्येक इकाई के लिए एक टेबल बनाते हैं, और यह भी कि प्रत्येक आईडी का अर्थ जानने के लिए एनम को संदर्भित करने के लिए डेटा को अकेले डेटाबेस में "अर्थ" है ।

आदर्श रूप से, इन इकाइयों के लिए डेटा enum में डेटा से पॉप्युलेट किया जाना चाहिए, लेकिन आजकल हमारे पास डीबी प्रारंभिक स्क्रिप्ट में मूल्यों को डुप्लिकेट किया गया है।

यह थोड़ा और जटिल हो जाता है जब एक ओआरएम जैसे हाइबरनेट का उपयोग किया जाता है।

मैं जानना चाहता हूं कि अन्य लोग इस तरह की स्थिति को कैसे संभालेंगे।

मैं एक enum और एक डेटाबेस तालिका के बीच एक दोहराव होने के विचार के साथ पूरी तरह से सहज नहीं हूँ, लेकिन मैं अभी तक एक बेहतर समाधान नहीं मिली है।

+1

इस से पहले कई बार कहा गया है - दाएँ हाथ की ओर –

उत्तर

2

इस प्रश्न के उत्तरों का प्रयास करें: Ways to save enums in database

+0

यह एक बहुत ही समान सवाल है पर "संबंधित" लिंक को देखो, मैं इसे पहले नहीं मिली है। फिर भी, ऐसा लगता है कि कोई आसान समाधान नहीं है, क्योंकि प्रतिक्रियाओं में से कोई भी समस्या का समाधान नहीं करता है। – Sam

1

मैं अपने जेपीए के लिए एक ही मुद्दा है/हाइबरनेट अनुप्रयोग। मैं क्या करता हूं गतिशील रूप से डेटाबेस में enum प्रविष्टि बनाते हैं क्योंकि उनका सामना करना पड़ता है। इसमें यह आवश्यकतानुसार स्वत: populates था।

संबंधित मुद्दे