मेरे पास एक प्रोजेक्ट है जो मैं वर्तमान में टॉमकैट, स्प्रिंग 4, स्प्रिंग सिक्योरिटी, MySQL और JPA w / हाइबरनेट का उपयोग करके काम कर रहा हूं।
मैंने जेपीए को उस दृष्टिकोण से चुना, जो यह माना जाता है कि ओआरएम प्रदाताओं के अंतर्निहित कार्यान्वयन को सहज बनाने के लिए, या कम से कम कम दर्दनाक है। मैं कहूंगा कि यह मानसिक रूप से कार्यान्वयन पर कल्पना का उपयोग कर रहा है (JAX-RS) जावा विकास समुदाय का डिफ़ॉल्ट दृष्टिकोण है।
मैं उत्सुक हूँ अगर यह वास्तव में एक काम करने लायक है। मुझे यकीन है कि अगर मैंने सीधे हाइबरनेट का उपयोग किया तो मुझे कुछ शक्ति प्राप्त होगी क्योंकि मैं उन विशेषताओं का उपयोग कर सकता हूं जो मुख्य जेपीए विनिर्देश का हिस्सा नहीं हैं।
मेरी चिंता का एक हिस्सा YAGNI के विचार से आता है। मैं अनिवार्य रूप से एक विशिष्ट शैली और फैशन में प्रोग्रामिंग कर रहा हूं (हाइबरनेट के बजाय जेपीए का उपयोग कर रहा हूं) ताकि भविष्य में कुछ बिंदु पर मैं अपने ओआरएम कार्यान्वयन को स्वैप कर सकूं। मुझे बहुत संदेह है कि यह उत्पाद के जीवन पर कभी भी होगा, इसलिए मैं अनिवार्य रूप से उस चीज में प्रयास कर रहा हूं जिसका लाभ शायद मैं कभी नहीं उठाऊंगा।
आपके क्या विचार हैं? "इंटरफ़ेस के लिए प्रोग्रामिंग" इसके लायक है जब यह जेपीए जैसे सामान की बात आती है? क्या आपने वास्तव में किसी उत्पाद में पूरे ORM कार्यान्वयन की अदला-बदली की है? क्या आप कभी भी किसी भी तरह से एब्स्ट्रैक्शन से बचने में सक्षम हैं जैसे कि जेपीए लीक करना? मेरे पास व्यक्तिगत रूप से एक एकल देशी एसक्यूएल कॉल पहले से ही है (डेटाबेस तालिकाओं को साफ करने के लिए), और वहाँ somethings मैं चाहता हूँ कि के साथ JPA कल्पना में बनाया जाता है (अपने तरीकों के लिए उपसर्ग मिल / सेट, और दोस्त के बीच अंतर) / IN, जो केवल एक अंतर्निहित कार्यान्वयन के लिए खुद को बाध्य करता है, मुझे बचने का कोई भी मौका मिलेगा।