Jira issue originally created by user branleb:
If you got two Entities A and B where A is a sample Entity with a 1:n relation to the Entity B
and B has a composite PK with the FK (A id) and a custom field like this:
public function addB(EntityB $ent)
public function setA(EntityA $ent)
$this->entity_a = $ent;
If you try to persist an object of A holding one or more references to objects of B, the objects get correctly persistet. This means, that every inserted record of B has a correctly filled field "entityaid". The objects of B also have a correct reference to A holding now the new A record with its autoinc id.
But the object property "entitya_id" stays empty. This leads to a collection of unusable EntityB objects (in memory), since on another persist of EntityA the values of entity_a_id are still not set correctly but the state is managed which leads to an "update B ... where entity_aid=0"
We've tried to set the entitya_id with an event handler on postPersist. On a persist of EntityA the collection entities wanted to update their entity_aids from 0 to the correct one.
Comment created by @beberlei:
When dealing with foreign keys as composite keys you are currently forced to make use of the "Assigned Id Generator".
This means you have to make sure the IDs are set to their values before calling ->persist().
This issue will be fixed when DDC-117 is merged into master. That will happen for the 2.1 release.
Issue was closed with resolution "Fixed"