मेरे डेटा मॉडल के साथ, जो मूल रूप से माता-पिता के बच्चों के साथ एक पेड़ है, डोजर को सफलतापूर्वक मैपिंग कर रहा है क्योंकि यह एक फ़ील्ड को समझता है (जो पैरामीटर के रूप में इंटरफ़ेस-प्रकार का उपयोग करता है) एक वर्ग होने के नाते, और एक कन्स्ट्रक्टर के साथ इसे चालू करने की कोशिश कर रहा है। इसके परिणामस्वरूप निम्नलिखित अपवाद हैं;डोजर अपने इंटरफेस में कक्षा को मैप करने का प्रयास कर रहा है
ERROR [MappingProcessor] - Field mapping error -->
MapId: null
Type: null
Source parent class: com.*.shared.model.Module
Source field name: parent
Source field type: class com.*.shared.model.Datawarehouse
Source field value: com.*[email protected]
Dest parent class: com.*.shared.model.Module
Dest field name: parent
Dest field type: com.*.shared.model.Model
org.dozer.MappingException: java.lang.NoSuchMethodException: com.*.shared.model.Model.<init>()
यह एक ही स्तर के मानचित्रण है, और जबकि डोजर सही ढंग से, प्रकार Datawarehouse के होने के रूप में स्रोत वर्ग पर माता पिता के क्षेत्र की पहचान करता है, क्योंकि इसके माता-पिता के लिए मॉड्यूल वर्ग पर सेट विधि के रूप में मॉडल इंटरफ़ेस का उपयोग करता है अपने पैरामीटर, ऐसा लगता है कि मॉडल के प्रकार को तुरंत चालू करने का प्रयास किया जा रहा है, जो निश्चित रूप से विफल रहता है क्योंकि मॉडल डाटाबेस के बजाए कोई कन्स्ट्रक्टर नहीं है, क्योंकि स्रोत वर्ग फ़ील्ड इंगित करता है।
मैं मानक मैपिंग व्यवहार को बदलने के लिए बीन-कारखानों का उपयोग करने के बारे में जानता हूं, लेकिन मुझे आश्चर्य है कि इस मुद्दे को हल करने का यह एकमात्र तरीका होगा। ऐसा लगता है कि डोज़र के पास पहले से ही वह जानकारी है जिसकी आवश्यकता है क्योंकि यह स्रोत वर्ग प्रकार की पहचान करता है, और मेरे लिए असामान्य है कि यह सेटर के हस्ताक्षर द्वारा निर्दिष्ट इंटरफ़ेस को तुरंत चालू करने का प्रयास करने के बजाय इंटरफ़ेस को तुरंत चालू करने का प्रयास करेगा।
कोई सुझाव?
क्या आपके पास इस कक्षा से संबंधित डोजर कॉन्फ़िगरेशन है? – OmegaZiv