Doctrine:在集合之间移动实体w /唯一约束&级联删除

时间:2015-04-28 11:19:58

标签: collections orm doctrine

给定实体Car带有车轮集合:

@var Collection<Wheel>
@ORM\ManyToMany(cascade={"all"}, orphanRemoval=true)
@ORM\JoinTable(
    joinColumns={@ORM\JoinColumn(onDelete="CASCADE")},
    inverseJoinColumns={@ORM\JoinColumn(unique=true, onDelete="CASCADE")}
)

有一个独特的约束条件,防止车轮连接到两辆车,并且启用了级联删除和孤立删除(当Car被删除时,其车轮也将被删除)。

工作是将车轮从一辆车转移到另一辆车。 由于Wheel不知道它与Car的关系(有原因,简化了例子),你不能更新Wheel而是必须更新两辆车。

首先尝试:

  • 从第一辆车上取下车轮
  • 将其附加到第二辆车
  • 更新第一辆车
  • 更新第二辆车

第三步删除Wheel。坏。

第二次尝试:

  • 从第一辆车上取下车轮
  • 将其附加到第二辆车
  • 更新第二辆车
  • 更新第一辆车

第三步违反了唯一约束。坏。

我无法想出一种转移方向盘的方法。任何帮助表示赞赏。

0 个答案:

没有答案