तो मैं किसी ऐप कुछ विन्यास की जानकारी संग्रहीत करने की आवश्यकता है, और इसलिए मैं मोंगो में सरल JSON दस्तावेज़ के रूप में कॉन्फ़िगरेशन भंडारण पर योजना बना रहा हूँ: जैसेमोंगो से/से संस्करणित ऑब्जेक्ट/JSON मैपिंग?
appConfig: {
fizz: true,
buzz: 34
}
इस नक्शे को हो सकता है एक जावा POJO/संस्था के लिए:
public class AppConfig {
private boolean fizz;
private int buzz;
}
इत्यादि। आमतौर पर, संबंधपरक डेटाबेस के साथ, मैं तालिका डेटा से/जावा इकाइयों से ओ/आर मैपिंग के लिए हाइबरनेट/जेपीए का उपयोग करता हूं। I मानते हैं कि तालिका/हाइबरनेट के निकटतम JSON/Mongo साथी एक मॉर्फिया/जीएसओएन कॉम्बो है: मॉर्फिया का उपयोग अपने जावा ऐप से मोंगो से कनेक्टिविटी ड्राइव करने के लिए करें, और उसके बाद जीएसओएन को ओ/जे मैप को जावा पीओजेओ/संस्थाओं।
समस्या यह है कि, समय के साथ, मेरे appConfig
दस्तावेज़ संरचना बदलेगी।
appConfig: {
fizz: true,
buzz: 34
foo: "Hello!"
}
कौन सा तो POJO/संस्था की आवश्यकता होगी बनने के लिए:: यह की तरह कुछ सरल किया जा सकता
public class AppConfig {
private boolean fizz;
private int buzz;
private String foo;
}
लेकिन समस्या यह है मैं JSON दस्तावेज़ पहले से ही में संग्रहीत की हजारों हो सकता है मोंगो जिसमें foo
उनके पास संपत्ति नहीं है।
public class AppConfig {
private boolean fizz;
private int buzz;
private String foo = "Hello!"
}
हालांकि वास्तविकता में, अंत में AppConfig
दस्तावेज़/स्कीमा/संरचना यह है कि कोई रास्ता नहीं है, आकार या रूप में इतना बदल सकता है: इस विशिष्ट मामले में, स्पष्ट समाधान की तरह संपत्ति पर एक डिफ़ॉल्ट सेट करने के लिए है इसके मूल डिजाइन जैसा दिखता है। लेकिन किकर है: मुझे पीछे की ओर संगत होने की आवश्यकता है और, अधिमानतः, जहां उचित हो, नई स्कीमा/संरचना से मेल खाने के लिए दस्तावेजों को अद्यतन/बदलने में सक्षम होना चाहिए।
मेरा प्रश्न: यह "संस्करणित दस्तावेज़" समस्या आमतौर पर हल कैसे होती है?
धन्यवाद @Lucky सांकेतिक शब्दों में बदलनेवाला (+1) के साथ मदद कर सकता है, लेकिन उस संस्करण परिवर्तन से निपटने जेपीए के साथ संयोजन के रूप में स्कीमा दस्तावेज़ के लिए की तुलना में अंतिम क्षेत्रों के बारे में अधिक हो रहा है। – IAmYourFaja