Bonjour J'ai un problème en essayant de supprimer en cascade des entités dans les relations OneToMany. Après quelques heures de débogage, j'ai essayé de rétrograder la doctrine de la dernière version 2.1.2 à la version 2.0.2 et elle a soudainement commencé à fonctionner.Doctrine 2.0 vs 2.1 cascade remove OneToMany
Imagin deux entités Société et adresse en relation 1: N. Lorsque j'essaie de supprimer l'entité Société, je souhaite que les adresses attribuées soient également supprimées.
$em->remove($company);
$em->flush();
Dans la doctrine 2.1.2, la suppression des adresses n'est pas effectuée, de sorte que la contrainte d'intégrité échoue. Dans la version 2.0.2, cela fonctionne parfaitement. Wierd chose sur elle est, si j'utilise EntityAudit extension https://github.com/simplethings/EntityAudit le LogRevisionListener corrige les versions des entités d'adresses (les mettre revtype = DEL) dans la doctrine 2.1.2 (bien sûr en 2.0.2 aussi bien) mais l'UnitOfWork ne le supprime pas.
Y a-t-il une différence dans la façon de gérer le retrait en cascade dans la version 2.0.2 et 2.1.2?
Merci beaucoup
Je suis tombé sur ce problème aujourd'hui aussi, j'utilise 2.1.6. :/ – mokagio
Eh bien, je dois me corriger, ça marche pour moi maintenant! J'utilisais 'cascade = {" all "}' mais quand je l'ai changé dans 'cascade = {" remove "}' tout a commencé à fonctionner correctement. – mokagio
Bien que je doive dire que mon problème n'est peut-être pas entièrement dû à l'ensemble d'annotations ou à Doctrine, parce que je fais une manipulation intensive sur les entités et, après un test sur la combinaison des options en cascade, j'ai découvert que L'option '' fusionner ''était celle qui donnait des problèmes. J'espère que ça aide de toute façon :) – mokagio