मैं डीडीडी के बारे में एरिक इवांस पुस्तक पढ़ रहा हूं और मेरे पास निम्नलिखित उद्धरण के लिए एक प्रश्न है। जब आप गुणों का उपयोग नहीं करना चाहते हैं तो आप अपनी equals()
विधि कैसे बनाते हैं? मैं जेपीए का उपयोग कर रहा हूं और मेरे पास एक आईडी विशेषता है जो अद्वितीय है लेकिन यह तब तक सेट नहीं है जब तक कि आप वास्तव में इकाई को बनाए रखते हैं। तो तुम क्या करते हो? मैंने गुणों के आधार पर बराबर विधि लागू की है और मैं समझता हूं कि आपको क्यों नहीं करना चाहिए क्योंकि यह मेरी परियोजना में विफल रहा है।डोमेन संचालित डिज़ाइन में इकाइयां
संस्थाओं के बारे में धारा:
जब एक वस्तु नहीं बल्कि अपने विशेषताओं की तुलना में, अपनी पहचान से भिन्न है, मॉडल में अपनी परिभाषा को यह प्राथमिक बनाते हैं। कक्षा परिभाषा को सरल और जीवन चक्र निरंतरता और पहचान पर केंद्रित रखें। इसके फॉर्म या इतिहास के बावजूद प्रत्येक ऑब्जेक्ट को अलग करने के साधनों को परिभाषित करें। उन आवश्यकताओं के प्रति सतर्क रहें जो गुणों के अनुसार वस्तुओं से मेल खाते हैं। की गारंटी के लिए एक ऑपरेशन को परिभाषित करें, प्रत्येक ऑब्जेक्ट के लिए एक अद्वितीय परिणाम उत्पन्न करें, संभवतः प्रतीक को संलग्न करके अद्वितीय गारंटी दी गई है। पहचान के माध्यम से बाहर से आ सकता है, या यह और सिस्टम के लिए बनाया गया एक मनमाना पहचानकर्ता हो सकता है, लेकिन यह मॉडल में भेद की पहचान के अनुरूप होना चाहिए। मॉडल को परिभाषित करना होगा कि इसका मतलब क्या है एक ही चीज़ है।
http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215
संभावित डुप्लिकेट, देख http://stackoverflow.com/questions/5031614/the-jpa-hashcode-equals-dilemma – MRalwasser
आईडी मेरे लिए ठीक काम करता है: http://stackoverflow.com/questions/7579404/उपयोग-ऑटो-जेनरेट-आईडी-ऑफ-हाइबनेट-इकाई-ऑब्जेक्ट-इन-द-बराल्स-एंड-हैशकोड-मिले – NimChimpsky