Doctrine orm 使Doctrine2在不再位于ArrayCollection中时自动从数据库中删除实体

Doctrine orm 使Doctrine2在不再位于ArrayCollection中时自动从数据库中删除实体,doctrine-orm,Doctrine Orm,我们正在处理这样一种情况:向用户显示一个表单,以添加/删除父实体的一些简单的OneToMany实体 在表单提交之后,我们已经使用基于表单数据的新集合替换了父级的数组集合 使用cascade={persist,remove}意味着在持久化和刷新父对象时,任何新的OneToMany实体都将成功持久化并添加到数据库中 我们希望的是,在父对象的持久化和刷新过程中,不再在OneToMany ArrayCollection中的实体将自动从数据库中删除,从而允许我们删除为逐个删除它们而编写的丑陋代码 这可能吗

我们正在处理这样一种情况:向用户显示一个表单,以添加/删除父实体的一些简单的OneToMany实体

在表单提交之后,我们已经使用基于表单数据的新集合替换了父级的数组集合

使用cascade={persist,remove}意味着在持久化和刷新父对象时,任何新的OneToMany实体都将成功持久化并添加到数据库中

我们希望的是,在父对象的持久化和刷新过程中,不再在OneToMany ArrayCollection中的实体将自动从数据库中删除,从而允许我们删除为逐个删除它们而编写的丑陋代码


这可能吗?

尝试在您的关联中添加orphanRemoving=true查看,我认为您可能是对的@chapay,我现在就要开始玩了啊,不,这涉及到在删除父实体时自动删除子实体一个多个实体。这并不是我们在做什么,所以丑陋的代码暂时还存在-在这种情况下,您能提供一些代码吗?如何从ArrayCollection中删除实体?我尝试了简单的代码,从ArrayCollection中删除实体,然后持久化父实体,效果很好。