8

DDD कुल प्रति भंडार निर्दिष्ट करता है, लेकिन जब वसंत डाटा जेपीए गले लगाने, हम लाभ केवल लाभ उठा सकते हैं जब हम इकाई प्रति इंटरफ़ेस घोषणा करते हैं। इस प्रतिबाधा विसंगति को कैसे हल किया जा सकता है?क्या डोमेन-संचालित डिज़ाइन रिपॉजिटरीज़ और स्प्रिंग डेटा वाले लोगों के बीच कोई मेल नहीं है?

मैं कुल भंडार के भीतर समझाया भंडार इंटरफेस की कोशिश करने की उम्मीद कर रहा हूँ, कि एक ठीक समाधान या कुछ भी बेहतर उपलब्ध है?

एक उदाहरण दिया करने के लिए: Customer कुल जड़ है और जहां प्रत्येक इकाई अपने स्वयं के भंडार इंटरफेस होने से फायदा हो सकता संस्थाओं Demographics, Identification, AssetSummary आदि की तरह हैं। डीडीडी का उल्लंघन किए बिना सबसे अच्छा तरीका क्या है?

उत्तर

13

..., लेकिन जब वसंत डाटा जेपीए गले लगाने, हम लाभ उठाने कर सकते हैं जब हम इकाई प्रति इंटरफेस की घोषणा ...

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

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

इस का एक उदाहरण इस Spring Data example में सही ढंग से लागू हैं। इस रिपोर्ट में Order, एक समग्र जड़ है LineItem सिर्फ एक साधारण इकाई है। यह Customer (रूट) और Address (सामान्य इकाई) पर लागू होता है। रिपोजिटरी इंटरफेस केवल कुल जड़ों के लिए मौजूद हैं।

वास्तव में, यह विशेष संबंध मौलिक सिद्धांत है जो स्प्रिंग डेटा आरईएसटी जैसे मॉड्यूल को पहले स्थान पर काम करता है। यह केवल कुल जड़ों के लिए HTTP संसाधनों का खुलासा करता है, बनाए गए प्रतिनिधित्वों के भीतर सामान्य इकाइयों को एम्बेड करता है और अन्य योगों के लिंक बनाता है।

+0

अपने जवाब के लिए धन्यवाद। यह सवाल तब हुआ जब कुल मिलाकर एक इकाई के रूप में एक इकाई होने की संभावना पर विचार करने की कोशिश की जा रही है, जो समग्र रूट पर संबंधपरक मैपिंग नहीं है या नहीं, मुझे लगता है कि यह कुल के लिए कस्टम रिपोजिटरी इत्यादि प्राप्त किया जा सकता है जड़, क्या मैं यह मान रहा हूँ? –

+0

आगे जब मुझे इस तरह के कस्टम इम्प्ले के साथ जाना है, तो स्प्रिंग डेटा के लाभों से बचने के लिए मैं कम से कम शुरू करना चाहता हूं (यदि ऊपर दी गई मेरी धारणा है) –

+1

ऐसी संस्थाएं जो * किसी अन्य योग में * निहित नहीं हैं * निश्चित रूप से उनकी भंडार प्राप्त कर सकती हैं, भी। मैं आमतौर पर उनके बारे में एक एकल इकाई के रूप में सोचता हूं जिसमें इकाई कुल रूट होती है। उस पैटर्न का महत्वपूर्ण हिस्सा यह है कि कुल मिलाकर इकाइयों को कुल मिलाकर छोड़कर छेड़छाड़ नहीं की जानी चाहिए। इसलिए, हर जेपीए इकाई को इसके पक्ष में स्प्रिंग डेटा भंडार नहीं मिलता है। –

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