एक और विकल्प ओसीएम ढांचे को पूरी तरह से छोड़ना है और केवल javax.jcr.Node
को बहुत ही लचीला डीएओ के रूप में उपयोग करना है। मूल कारण यह है कि ओसीएम ढांचे का अस्तित्व क्यों है क्योंकि आरडीबीएमएस के साथ आपको वस्तुओं से संबंधपरक मॉडल में मैपिंग की आवश्यकता होती है। जेसीआर के साथ, जो पहले से ही बहुत ऑब्जेक्ट उन्मुख (नोड ~ = ऑब्जेक्ट) है, यह अंतर्निहित कारण चला गया है। क्या बचा है कि डीएओ के साथ आप अपने प्रोग्रामर को अपने कोड में एक्सेस कर सकते हैं (इसके अलावा स्वत: पूर्णता की सहायता)। लेकिन यह दृष्टिकोण वास्तव में जेसीआर अवधारणा का लाभ नहीं उठाता है, जिसका अर्थ है स्कीमा मुक्त और लचीला प्रोग्रामिंग। सीधे अपने कोड में जेसीआर एपीआई का उपयोग करना उस अवधारणा का पालन करने का सबसे अच्छा तरीका है।
कल्पना कीजिए कि आप अपने आवेदन के जीवन में बाद में किसी मौजूदा नोड/ऑब्जेक्ट में एक नई संपत्ति जोड़ना चाहते हैं - एक ओसीएम ढांचे के साथ आपको इसे संशोधित करना होगा और यह सुनिश्चित करना होगा कि यह अभी भी ठीक से काम करता है। नोड्स तक सीधी पहुंच के साथ यह केवल बदलाव का एक बिंदु है। मुझे पता है, उदाहरण के लिए टाइपो के साथ समस्याएं पाने का यह एक अच्छा तरीका है। संपत्ति के नाम; लेकिन इस डर को वास्तव में वास्तविकता का समर्थन नहीं किया जाता है, क्योंकि जब आप अपने आवेदन की जांच करते हैं तो ज्यादातर मामलों में आप टाइपो या गैर मेल खाने वाले नामों को बहुत जल्दी देखते हैं। यदि आप उन सभी जेसीआर एपीआई का पर्दाफाश करते हैं तो आपके एपीआई के हिस्से के रूप में, सामान्य नोड या संपत्ति नामों के लिए स्ट्रिंग स्थिरांक का उपयोग करना एक अच्छा समाधान है। यह आपको अभी भी ओसीएम परतों को अपनाने के बिना नए गुणों को जोड़ने के लिए लचीलापन देता है।
क्या अनुमति है या अनिवार्य (यानी "अर्ध-स्कीमा") पर कुछ बाधाओं के लिए आप नोड प्रकारों और मिश्रणों का उपयोग कर सकते हैं (चूंकि जेसीआर 2.0 आप मौजूदा सामग्री के लिए नोड प्रकार भी बदल सकते हैं): इस प्रकार आप इसे पूरी तरह से भंडार स्तर पर संभाल सकता है और अपवादों को पकड़ने के अलावा - आपके आवेदन कोड के अंदर टाइपिंग और बाधाओं की परवाह नहीं है ;-)
लेकिन, निश्चित रूप से, यह विकल्प आपकी आवश्यकताओं और व्यक्तिगत प्राथमिकताओं पर निर्भर करता है ।
स्रोत
2008-12-16 12:26:48
बहुत दिलचस्प है। मैं मानता हूं कि मुझे वास्तव में सोच की पुरानी "ओसीएम शैली" से दूर नहीं मिला है। विचार के लिए अच्छा खाना। – Chinnery
यह कैसे आया कि ओसीएम ने इसे जेआर 1.6.0 में नहीं बनाया? यह बहिष्कृत, हाइबरनेटेड दिखता है .... – lisak