2010-02-25 14 views
5

हम अपने प्रोजेक्ट के लिए ओआरएम समाधान का मूल्यांकन कर रहे हैं जिसमें बिजनेस लेयर और डाटाटायर (जेडीबीसी) के बीच कसकर युग्मन है। मैंने केयेन के साथ एक पीओसी करना शुरू कर दिया। मेरी आवश्यकता इस ए की तरह जाती है ए) डेटाबेस स्कीमा बी पहले से मौजूद है बी) स्कीमा बहुत दानेदार स्तर है। अर्थात। वास्तविक समय जावा वस्तुओं को केवल टेबल संयोजन करके व्युत्पन्न किया जाता है। ग) पल मैं सिर्फ पढ़ने के लिए कार्रवाई करने के लिए चाहते हैं पर (सटीक फिल्टर और प्रकार पर inputing मापदंडों के आधार पर एक सूची)क्या मेरी आवश्यकता के लिए कैयेन अच्छा विकल्प है?

अब तक

होने के लिए, टिप्पणियों मैं केयेन के साथ किया जाता है 1) टेबल और वस्तु कसकर हैं युग्मित। मॉडलर संबंधित तालिका के बिना जावा ऑब्जेक्ट बनाने की अनुमति नहीं दे रहा है। 2) मुझे एक जावा ऑब्जेक्ट में नामित क्वेरी के आउटपुट को मैप करने का आसान तरीका नहीं मिल सका ताकि मुझे एक तरह से आवेदन की ज़रूरत हो। 3) मुझे भी यकीन नहीं है कि अभिव्यक्ति नामित प्रश्नों के साथ काम करती है।

मैं अपनी आवश्यकता के लिए सबसे अच्छा विकल्प पर अपने इनपुट जानना चाहता हूं?

अग्रिम धन्यवाद।

उत्तर

5

अगर मुझे ओआरएम उपकरण या जेपीए प्रदाता चुनना पड़ा, तो यह केवल कायेन नहीं होगा क्योंकि इसका व्यापक रूप से उपयोग नहीं किया जाता है, इसलिए इसके पीछे समुदाय बहुत बड़ा नहीं है और यह चिंता का विषय है। इस प्रकार तकनीकी बिंदुओं पर चर्चा करने की कोई आवश्यकता नहीं है, कैयेन 2.0 जैसी चीजें घुसपैठ कर रही हैं, आपको इंटरफ़ेस को लागू करना है या सुपरक्लास का विस्तार करना है (केयेन 3.0 में पीओजेओ समर्थन है लेकिन अभी भी 2 साल से अधिक समय बाद बीटा में है ...)। नहीं, वास्तव में, मुझे ओआरएम उपकरण की आवश्यकता होने पर, हाइबरनेट, डिफैक्टो मानक नहीं चुनने का कोई अच्छा कारण नहीं दिख रहा है।

लेकिन ...

अपनी आवश्यकताओं को देखते हुए, एक ORM वास्तव में नहीं सबसे अच्छा विकल्प, ख की वजह से mosty) हो सकता है तो मैं iBatis का उपयोग कर जो एक हे/आर नक्शाकार नहीं है पर विचार करेंगे (, यह एक डेटा है मैपर) इसके बजाए।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। हम आपकी सिफारिश पर विचार करेंगे। आवश्यकता मैं mentioend एक शुरुआत थी। आगे बढ़ने के लिए हमें पूर्ण ओआरएम सुविधाओं की आवश्यकता हो सकती है। – Sudheer

4

केयेन में बहुत अच्छी सुविधाएं हैं, और साथ ही आपके प्रोजेक्ट में उपयोग करने के लिए आपके पास कई ओपन सोर्स टूल हैं। हाइबरनेट कुछ लोगों और केयेन दूसरों के लिए उपयुक्त है। मुझे पता है कि अधिक उपयोग के लिए, मुख्य रूप से इन कारकों के कारण केयेन हाइबरनेट से काफी बेहतर था:

  • एक बहुत उपयोगी उपयोगकर्ता समुदाय। हाइबरनेट थोड़ा घर्षण हो सकता है।
  • बड़ी संख्या में परीक्षणों के साथ एक बहुत ही मजबूत कोड बेस जो बड़े कोड कवरेज
  • आरओपी (तीन स्तर) समर्थन प्रदान करता है। यदि आपको इसकी ज़रूरत है तो यह स्वयं में एक बड़ी सुविधा है।
  • अच्छा विरासत समर्थन
  • केयेन मॉडलर

हाँ, केयेन दृष्टिकोण है कि वस्तु संस्थाओं है (जावा ग्राहकों जो डाटाबेस के लिए नक्शे) एक सुपर क्लास का विस्तार। इससे आपको हाइबरनेट (कैयेन पूरे ऑब्जेक्ट लाइफसाइकिल को नियंत्रित करता है) पर कुछ विशिष्ट फायदे देता है और कुछ लोगों के लिए जटिलताओं को प्रस्तुत करता है।

मुझे यह भी पता चलता है कि केयेन ने सहज ज्ञान के लिए संदर्भ (वस्तुओं और परिवर्तनों का एक समूह जो बाद में किया जाएगा) का प्रबंधन करता है।

अपने प्रश्नों के लिए के रूप में:

1) केयेन निश्चित रूप से मदद से आप एक तालिका में एक एक-से-एक नक्शा के बिना वस्तु संस्थाओं पैदा करते हैं। हम इसे हर समय करते हैं, खासकर जब विरासत का मॉडल करते हैं।

2) एसक्यूएल टेम्पलेट आपको नामित प्रश्नों पर जाने देगा, लेकिन आपको पता चलेगा कि अधिकतर ओआरएम आपको इस दृष्टिकोण से दूर ले जाएंगे क्योंकि आप प्राकृतिक तरीके से काम कर रहे हैं, ओआरएम डेटाबेस में सीधे प्रश्न बनाने के लिए काम करता है। बिंदु जब भी संभव हो डेटाबेस को सारणी करना है।

3) SQLTemplate आपको बस कुछ भी करने के बारे में बताएगा। लेकिन फिर, एक ओआरएम को अपनाना आपके आवेदन को लिखने की रणनीति है, न केवल जेडीबीसी के लिए एक हल्का आवरण। मेरा मानना ​​है कि लाभ बहुत बड़े हैं और हमारी परियोजनाओं ने लाभान्वित किया है, लेकिन यह आपके लक्ष्यों पर निर्भर करता है।

0

सहमत हुए, केयेन में बहुत अच्छी सुविधाएं हैं। लेकिन अगर आपके प्रोजेक्ट को विरासत के साथ किए गए कुछ काम की ज़रूरत है (आपने इसका जिक्र नहीं किया है), निश्चित रूप से कायेन एक विकल्प नहीं है। यह "अच्छा विरासत समर्थन" नहीं करता है:

क्षैतिज विरासत - https://issues.apache.org/jira/browse/CAY-795 - 30/मई/07 के बाद से; चर्चा http://cayenne.195.n3.nabble.com/Vertical-inheritance-td827636.html पर 0/36/2010/0/30/2010

मैं अक्सर अपनी व्यक्तिगत परियोजनाओं पर इसका उपयोग करता हूं और उत्पादकता में लाभ उत्कृष्ट है।

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