मुझे नहीं लगता कि आपके प्रश्न का एक निश्चित उत्तर है। लेकिन मैं आपको कुछ कठिन जीत सलाह दे सकता हूं। यहां कुछ बातें विचार करने के लिए हैं:
-
यह समय-समय पर मार्शलिंग और अनारहॉलिंग कोड लिखने में समय लगता है, खासकर पहली बार।
-
आपको अपनी डीओएम लाइब्रेरी (जेरिस या उसके समकक्ष) की बारीकियों को सीखने में काफी समय व्यतीत करना होगा।
-
बहुत सारे नकल हैं इसलिए आपको अंततः कुछ सहायक कक्षाएं लिखने के लिए प्रेरित किया जाएगा।
-
आपको यह सुनिश्चित करने के लिए कई यूनिट परीक्षणों की आवश्यकता होगी कि आपने अपने सभी अड्डों को वैकल्पिक तत्वों और विशेषताओं के क्षेत्र में शामिल किया है।
उस सूची को देखते हुए यह कहना बहुत आसान है "जेएक्सबी मेरे लिए क्या करता है"। इसके लिए कई सालों से ऐसा करने के बाद मैं कहूंगा कि जेएक्सबी आपको काफी समय और प्रयास बचाता है, खासकर जावा 5/6 में जेएक्सबी का नवीनतम पुनरावृत्ति।
लेकिन यदि आप जेएक्सबी के साथ जाते हैं तो एक सबक है जिसे हमने कठिन तरीके से सीखा है जिसे मैं पास करना चाहता हूं:
*** जेएक्सबी जेनरेटेड क्लास को अपने आवेदन में रिसाव न करने दें।
जैसा कि आपने अपने प्रश्न में कहा था, यह आपके पूरे एप्लिकेशन को जेएक्सबी की बात करने के तरीके से जोड़ता है। यदि जेएक्सबी को प्रतिस्थापित करना है (भविष्य में आप ऐसा क्यों कर सकते हैं) तो आपको एक चुनौतीपूर्ण और दर्दनाक कार्य का सामना करना पड़ेगा (मेरा विश्वास करो, हमने इसे किया है और हम उसमें कभी नहीं पहुंचेंगे फिर से स्थिति)।
अब हम हमेशा अपने जेएक्सबी जेनरेटेड क्लासेस को एक मुखौटा या कारखाने के पीछे छिपाते हैं, जेएक्सबी कक्षाओं से अपने डोमेन पीओजेओ में मैपिंग करते हैं जिसमें आवश्यक व्यवहार होता है। हम जेएक्सबी के बारे में सोचते हैं क्योंकि हम जेडीबीसी करते हैं; जेएक्सबी सिर्फ एक और डेटा स्रोत है, हमारे डोमेन POJO से डेटा प्राप्त करने का एक और तरीका है। डोमेन पीओजेओ गुप्त सॉस हैं और हम नियंत्रित करते हैं कि उन्हें कैसे कोड किया जाता है और उनका उपयोग कैसे किया जाता है। जेएक्सबी मार्शलिंग और अनमर्शलिंग के लिए सिर्फ एक उपकरण है।