关于 php:Doctrine 2: 如何用孩子的数量更新字段?

Doctrine 2: How to update field with number of children?

如果我有两个实体:Parent 和 Child,如何运行单个查询并使用相关子项的数量更新 Parent.number_of_children?

我可以遍历每个父节点,但可以通过 MySQL 中的单个查询轻松完成,问题是如何在 Doctrine 2 中完成(可能使用 DQL)?

相关讨论

  • 使用 @ORM\PrePersist() 怎么样?

除非有人提供更好的解决方案,否则我会使用原生 SQL:

1
$entityManager -> getConnection() -> query("...");

我会使用 PrePersist 和 PreUpdate 事件:

1
2
3
4
5
6
7
8
9
10
11
12
class Parent
{
    /**
     * @ORM\PrePersist()
     * @ORM\PreUpdate()
     */

    public function onPrePersistAndUpdate()
    {
        $this->numberOfChildren = count($this->getChildren());
    }

}

相关讨论

  • 是的,但是如果我有 10000 个父母和 10000 个孩子呢?使用本机 MySQL 查询,我可以在不从数据库中提取任何数据的情况下做到这一点......

以上是关于 php:Doctrine 2: 如何用孩子的数量更新字段?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>