7

我正在使用 Symfony2 和 Doctrine2 来构建后端 API。此 API 将接收对象图到数据库中的 CRUD。

我正在使用出色的 JMSSerializer 包将对象的 json 编码图反序列化为分离的实体图,然后我想简单地将该图直接合并到数据库中。

在我的代码中,我有 2 个实体:父母和孩子。OneToMany(cascade={"all"}, orphanRemoval=true)在 Parent 中定义了一个关系。

在我的数据库中,我有一个 ID 为 1 的父行,其中有 3 个 ID 为 1、2、3 的子行。

我想写一些类似的东西(我在这里没有使用反序列化,以简化示例):

$parent = new Parent(); $parent->id = 1  // detached entity
$existing_child = new Child(); $child->id = 2 // detached entity
$new_child = new Child(); // new entity
$parent->addChild($existing_child);
$parent->addChild($new_child);

$em = $this->getDoctrine()
    ->getEntityManager();
$em->merge($parent);

$em->flush();

这样做,我的新孩子被很好地创建,现有孩子被更新但旧孩子(1和3)没有被删除。

如果我遗漏了什么,有人可以帮助我吗?

4

0 回答 0