विभिन्न ऑब्जेक्ट मैनेजर्स (इकाई प्रबंधक) का उपयोग करने से ऑब्जेक्ट ग्राफ़ को छेड़छाड़ करने की अनुमति नहीं मिलती है। वह मामला बहुत जटिल है और इसे डॉक्टर ओआरएम द्वारा प्रबंधित नहीं किया जाता है।
यदि आपको ऐसा कोई मामला चाहिए, तो ऑब्जेक्ट ग्राफ़ को उनके संदर्भ के बजाय संबंधित ऑब्जेक्ट्स (पुरानी शैली) के पहचानकर्ताओं को सहेजकर डिस्कनेक्ट किया जाए, फिर मैन्युअल रूप से सेवाओं के माध्यम से ऑब्जेक्ट प्राप्त करें। आप example of connection between Doctrine2 ORM and Doctrine2 MongoDB ODM में कैसे काम करेंगे इसका एक अच्छा उदाहरण पा सकते हैं। वैकल्पिक रूप से, आप @PostLoad
ईवेंट श्रोता का भी उपयोग कर सकते हैं जो उदाहरण में लिंक किए गए भंडारों के माध्यम से लिंक बनाकर आपकी संस्थाओं में डेटा पॉप्युलेट करता है। @PostPersist
के लिए वही (जो संबंधित वस्तुओं के लिए पहचानकर्ताओं को निकालने के बजाय), लेकिन सावधान रहें कि यह तकनीक वास्तव में गन्दा हो सकती है।
इसके अलावा, यदि आपका आरडीबीएमएस एक मेजबान पर क्रॉस-डेटाबेस ऑपरेशंस का समर्थन करता है, तो आप केवल एक एंटीटी मैनेजर का उपयोग कर सकते हैं और अन्य तालिका को @ORM\Table(name="schemaname.tablename")
के साथ संदर्भित कर सकते हैं।
* यदि आपका आरडीबीएमएस एक मेजबान पर क्रॉस-डेटाबेस ऑपरेशंस का समर्थन करता है, तो आप केवल एक एंटीटी मैनेजर का उपयोग कर सकते हैं और अन्य तालिका * का संदर्भ दे सकते हैं। उत्कृष्ट सलाह। धन्यवाद! – noisebleed
पता चला कि केवल एक इकाई प्रबंधक और एकाधिक डेटाबेस का उपयोग करते समय, सिद्धांत केवल 'default_connection' तालिकाओं में स्कीमा परिवर्तनों का पता लगाता है। यह काम करने के लिए कोई विचार है? – noisebleed
@ दस्तावेज़ों से नोइसेबल: $ php ऐप/कंसोल सिद्धांत: स्कीमा: अद्यतन --force --em = ग्राहक। यहां और पढ़ें: http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html – apfz