2012-10-08 12 views
9

मुझे मॉर्फिया में स्कैला कक्षा को स्टोर करने की आवश्यकता है। एनोटेशन के साथ यह अच्छी तरह से काम करता है जब तक कि मैं _ < की दुकान संग्रह करने का प्रयास करें: गणनस्कैला, मॉर्फिया और गणना

अफ़ीम का सत्त्व शिकायत है कि यह उस प्रकार के लिए serializers नहीं है, और मैं, सोच रहा हूँ कैसे एक प्रदान करने के लिए। अभी के लिए मैंने सेक [स्ट्रिंग] पर संग्रह का प्रकार बदल दिया है, और संग्रह में प्रत्येक आइटम पर toString को आमंत्रित करने के साथ इसे भरें।

यह अच्छी तरह से काम करता है, हालांकि मुझे यकीन नहीं है कि यह सही तरीका है या नहीं।

+1

"_ _ <गणना 'के संग्रह से आपका क्या मतलब है? क्या आपका मतलब है 'सेक [_ <: गणना] '(जो' वर्ग [गणना] 'जैसा ही है, जब तक कि' वर्ग 'उत्परिवर्तनीय न हो), या क्या आपका मतलब कुछ और है? –

+1

यह की ** एक फैली Seq गणन ** – jdevelop

+0

आप 'A.type' के बजाय A.Value' का उपयोग कर' की कोशिश की है है? या क्या मैं 'सेक' के उद्देश्य को गलत व्याख्या कर रहा हूं? –

उत्तर

1

यह समस्या मोंगोडीबी के शीर्ष पर अमूर्तता की कई उपलब्ध परतों के लिए आम है। यह सब मूल आधार पर वापस आते हैं: जेसन/बीसन में कोई समकक्ष समकक्ष नहीं है। उदाहरण के लिए सलात एक ही समस्या है।

वास्तव में, MongoDB जावा ड्राइवर enums का समर्थन नहीं करता, जैसा कि आप चर्चा यहाँ पर जा रहा में पढ़ सकते हैं: https://jira.mongodb.org/browse/JAVA-268 आप देख सकते हैं, जहां समस्या अभी भी खुला है। जावा के साथ मोंगोडीबी का उपयोग करने के लिए मैंने देखा है कि अधिकांश ढांचे इस तरह के निम्न स्तर की कार्यक्षमताओं को लागू नहीं करते हैं। मुझे लगता है कि यह विकल्प बहुत समझ में आता है क्योंकि वे आपको निम्न स्तर के चालक द्वारा नियंत्रित डेटा संरचनाओं से निपटने के तरीके के बारे में पसंद करते हैं, इसके बजाय आपको यह कैसे करना है।

आम तौर पर मुझे लगता है कि समर्थन की अनुपस्थिति तकनीकी सीमा से नहीं बल्कि डिजाइन पसंद से है। Enums के लिए, उनके पेशेवरों और उनके विपक्ष के साथ उन्हें मैप करने के लिए कई तरीके हैं, जबकि अन्य डेटा प्रकारों के लिए शायद सरल है। मुझे मोंगोडीबी जावा चालक को विस्तार से पता नहीं है, लेकिन मुझे लगता है कि कई "मोड" का समर्थन करने के लिए कुछ रिफैक्टरिंग की आवश्यकता होगी (शायद यही कारण है कि वे धारावाहिकता के एक नए संस्करण के बारे में बात कर रहे हैं?)

ये दो रणनीतियों हैं के बारे में सोच:

  • आप एक enum पर अनुक्रमित करना चाहते हैं और अंतरिक्ष कब्जे को कम हैं, तो आप एक पूर्णांक के लिए enum मैप कर देंगे (नहीं क्रमसूचक का उपयोग कर, कृपया can set enum start value in java)।
  • आपकी चिंता mongoshell पर queryability है, क्योंकि अपने डेटा डेटा वैज्ञानिक द्वारा पहुँचा जा जाएगा, आप बल्कि enum अपने स्ट्रिंग मान

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

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