2010-01-29 4 views
18

मैं लिफ्ट में अपनी कंपनी के लिए एक छोटा सा एप्लीकेशन बना रहा हूं। मैं स्कैला/लिफ्ट में काफी नौसिखिया हूं इसलिए मैं अभ्यास करने का इस मौका का उपयोग कर रहा हूं। अब, मेरे पास ओआरएम सिस्टम का उपयोग करने के बारे में एक सवाल है।ओआरएम: मैपर या जेपीए?

एक तरफ, मैपर लिफ्ट डिफ़ॉल्ट है। दूसरी तरफ, मैंने पढ़ा है कि यह कुछ क्षेत्रों में अच्छा नहीं है और रिकॉर्ड द्वारा प्रतिस्थापित किया जाएगा (जो अभी तक अच्छी तरह से प्रलेखित नहीं है, मेरे जैसे नए उपयोगकर्ता द्वारा अनुसरण करना मुश्किल है)।

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

मैंने मेलिंग सूचियों पर कुछ दावों को पढ़ा है कि जेपीए लिफ्ट के लिए जाने का रास्ता बन रहा है, लेकिन यह व्यापक राय नहीं प्रतीत होता है। कोई इस मामले में कुछ प्रकाश ला सकता है?

धन्यवाद!

+0

अप, सुधार जोएल के लिए धन्यवाद :) –

उत्तर

3

यह आपके लिए आवश्यक चीज़ों पर निर्भर करता है। यदि आपके पास ऐसा मॉडल है जो विरासत और एक/कई से अधिक रिश्ते का उपयोग कर रहा है तो आप जेपीए के साथ बेहतर हो सकते हैं।

हालांकि यदि आप तेजी से बदलाव चाहते हैं, तो मैपर जाने का रास्ता है। मैपर/क्रुडिफा एक महान मचान जोड़ी है, और उस शक्ति को हरा करना मुश्किल है।

8

अब मुझे एक ही दुविधा का सामना करना पड़ रहा है :) इस बात पर विचार करें कि मैपर/रिकॉर्ड अधिक स्केलिश नहीं है, फिर जेपीए/हाइबरनेट (उदाहरण के लिए मैपर और रिकॉर्ड दोनों में आप म्यूटेबल इकाइयों का उपयोग करते हैं)। स्निपेट्स Use of "immutable" Scala entities with Hibernate और Mapping of scala's Option in Hibernate देखें कि आप हाइबरनेट को काफी स्केलिश तरीके से कैसे उपयोग कर सकते हैं। तो यदि आप पहले ही हाइबरनेट को जानते हैं और इसके साथ सहज हैं तो आप बेहतर तरीके से इस तरह से जाएंगे। अन्यथा छोटी परियोजना के लिए आप मैपर का प्रयास कर सकते हैं।