मैं सिद्धांत 1.2 से 2.x तक स्विच कर रहा हूं और एक अजीब समस्या में चल रहा हूं।सिद्धांत 2 लगातार उन्हें अद्यतन करने के बजाय मौजूदा आइटम डालने का प्रयास करता है
मैं एक इकाई CompositionRule एक विशेषता $ buildingBlock है, एक BuildingBlock इकाई की ओर इशारा करते है।
मैंने यह विशेषता सेट की है, जिससे यह मौजूदा बिल्डिंगब्लॉक को इंगित करता है, जिसे मैं डेटाबेस से प्राप्त करता हूं।
जब मैं मुख्य ऑब्जेक्ट (कंपोज़िशनरूल) जारी रखता हूं, तो इकाई प्रबंधक एक नई बिल्डिंगब्लॉक आइटम बनाने की कोशिश करता है और इसे स्वीकार करने के बजाय डेटाबेस में डालने की कोशिश करता है कि यह पहले से मौजूद है और इसे अनदेखा कर रहा है।
मुझे नहीं लगता कि मैं यहाँ क्या खो रहा हूं जैसे कि सिद्धांत 1.2 में जब आपने $ इकाई-> save() निष्पादित की थी; सभी अंतर्निहित वस्तुओं को सही ढंग से संभाला गया था।
CompositionRule:
यहाँ मेरी मैपिंग/कोड के कुछ हिस्से हैं
<many-to-one field="buildingBlock" target-entity="BuildingBlock">
<cascade><cascade-all /></cascade>
</many-to-one>
..
public function setBuildingBlock($buildingBlock) {
$buildingBlock->addCompositionRule($this);
$this->buildingBlock = $buildingBlock;
}
BuildingBlock
<one-to-many field="compositionRules" target-entity="CompositionRule" mapped-by="buildingBlock">
<cascade>
<cascade-all />
</cascade>
</one-to-many>
public function addCompositionRule($rule) {
$this->compositionRules->add($rule);
}
यहां एक ही समस्या है। क्या आपको कोई समाधान मिला? – Bono
वही यहाँ। +1। मेरा अस्थायी कामकाज $ em-> getUnitOfWork() -> getScheduledEntityInsertions() प्राप्त करें और विशेष संस्थाओं को हटा दें ... – tiriana