मैं एक वर्ग से अन्य वर्ग के साथ जुड़ने वाली इकाइयों को पुनर्प्राप्त करने का प्रयास कर रहा हूं। सभी संस्थाएं वास्तव में इकाइयों में शामिल नहीं हुई हैं।नलिका संबंधों के साथ तालिका में शामिल होने पर सिद्धांत प्रॉक्सी ऑब्जेक्ट देता है
यह निम्नलिखित बयान की तरह थोड़े है:
SELECT a, b FROM A a LEFT JOIN B b ON a.id = b.aid GROUP BY a.id;
या कोड में:
$query_builder = $em->getRepository('repository_of_A')->createQueryBuilder('a');
$query_builder = $query_builder->leftJoin('a.b', b);
$query_builder = $query_builder->groupBy('a.id');
$query = $query_builder->select('a, b')->getQuery();
$entities = $query->getResult();
अब समस्या है कि जब भी वहाँ है एक के लिए कोई इकाई बी, सिद्धांत एक प्रॉक्सी ऑब्जेक्ट ए के लिए क्योंकि मैं प्रतिबिंब के साथ काम करता हूं मुझे प्रॉक्सी की बजाय वास्तविक वस्तु की आवश्यकता होती है।
संलग्न स्क्रीनशॉट में इंडेक्स 26 के साथ ऑब्जेक्ट में ए (दुकान) के लिए कोई संबंधित इकाई बी नहीं है।
किसी को क्यों पता है और मैं इस समस्या को कैसे हल कर सकते हैं?
नोट: मुझे पता है कि मैं सिर्फ इकाई के बजाय classname जब प्रतिबिंब का उपयोग कर इस्तेमाल कर सकते हैं, लेकिन मैं यह भी यहाँ समस्या को समझने के लिए यह क्रम को प्रभावित कर सकता के रूप में चाहते हैं ...
संपादित करें : एक स्क्रीनशॉट
अजीब लगता है। क्या इसके पास कोई और संगठन है? किसी भी घटना में, सिद्धांत 2 का उपयोग करते समय आपको प्रॉक्सी को संभालने में सक्षम होना चाहिए। – Cerad
असल में बहुत अधिक संगठन हैं, लेकिन क्वेरी केवल ए और बी के लिए पूछती है, ठीक है, मैं यह सुनिश्चित करने के लिए कि 'प्रतिबिंब :: getClass (...)' का उपयोग करता हूं, यह सुनिश्चित करने के लिए कि प्रतिबिंब अभी भी काम करेंगे। हालांकि, मुझे अभी भी इसे हल करने में दिलचस्पी है .. – van
अन्य संगठन आलसी लोडिंग का समर्थन करने के लिए प्रॉक्सी बनने का कारण बनेंगे। मेरे आस-पास का एकमात्र काम आपके लिए कुछ प्रकार का डेटा रूपांतरण करना होगा या अपना खुद का सिद्धांत 2 हाइड्रेटर बनाना होगा। लेकिन आपके प्रतिबिंब कोड समर्थन प्रॉक्सी के लिए बस अपनी सबसे अच्छी शर्त है। – Cerad