Ha kapcsolt entitásokat akarunk detach-elni az EntityManagerről memóriafelszabadítás végett, akkor az nem fog menni automatikusan. Tegyük fel, van egy ilyen kapcsolatunk:
Post --1m--> TagLink --m1--> Tag
Ha most nyomunk egy $em->detach($post) -ot, akkor csak a Post entitást távolítja el a Doctrine, a többi bent marad az EntityManagerben.
Megoldás #1: kézzel eltávolítjuk a kapcsolt elemeket
Megoldás #2: a Post, es TagLink megfelelő tagváltozóinak OneToMany és ManyToOne annotationjébe beírjuk ezt:
cascade={"detach"}
Példa a Post -> TagLink kapcsolatra:
/**
* @OneToMany(targetEntity="TagLink", mappedBy="post", cascade={"detach"})
* @JoinColumn(name="id", referencedColumnName="post_id")
*/
protected $tagLinks;