Php “什么级联”;刷新“;第2条中的意思是什么?

Php “什么级联”;刷新“;第2条中的意思是什么?,php,doctrine-orm,Php,Doctrine Orm,在Doctrine2中,“刷新”是什么意思?是实体更新操作吗 更新 现在看来,如果,例如,类别名称被更改,所有相关的产品都将被获取和更新。但,由于实体通常只通过id关联,所以并没有意义获取所有产品,因为子表中并没有要更新的内容。 出于这个原因,我假设“刷新”类似于MySQL的“更新级联”——如果父主键更改,子值也将更改以反映这一点。因此,条令“刷新”操作仅在ORM级别相同。只有我们更新了家长id才有意义,对吗 您可以找到文档,但作为总结,我将复制一些要点: 保留、删除、分离、刷新和合并单个 实体

在Doctrine2中,“刷新”是什么意思?是实体更新操作吗

更新

现在看来,如果,例如,类别名称被更改,所有相关的产品都将被获取和更新。但,由于实体通常只通过id关联,所以并没有意义获取所有产品,因为子表中并没有要更新的内容。
出于这个原因,我假设“刷新”类似于MySQL的“更新级联”——如果父主键更改,子值也将更改以反映这一点。因此,条令“刷新”操作仅在ORM级别相同。只有我们更新了家长id才有意义,对吗

您可以找到文档,但作为总结,我将复制一些要点:

保留、删除、分离、刷新和合并单个 实体可能会变得相当麻烦,特别是当 涉及交织对象图。因此,第2条规定了 通过这些元素的级联实现可传递持久性的机制 操作。每个关联到另一个实体或集合 可以将实体配置为自动级联某些 操作。默认情况下,不级联任何操作

存在以下级联选项:

  • 持久化:将持久化操作级联到关联的实体
  • 移除:将移除操作级联到关联实体
  • 合并:将合并操作级联到关联的实体
  • 分离:将分离操作级联到关联实体
  • 刷新:将刷新操作级联到关联的实体
复制所有部分是不必要的,因为每个人都可以打开链接,但是级联的概念从这一部分就很清楚了

根据条令对关联进行自动操作

刷新层叠
的情况下,当您在
@oneToMany
关联上定义此层叠时,当您在一侧执行
刷新
时,您要求条令在多个侧面刷新
集合


假设在
类别
产品
实体之间存在
一对多
关联。如果为其定义此级联,则每次在任何
类别
上调用
刷新
,其
产品集合
都将刷新

关于问题的这一部分:是实体更新操作吗?是的,在
刷新
中,它意味着将集合和实体从数据源提取到内存中

级联操作在内存中执行。这意味着收集和 相关的实体会被提取到内存中,即使它们仍然存在 将要执行级联操作时标记为懒惰。 但是,这种方法允许执行实体生命周期事件 对于每个操作

然而,将对象图形拉入级联上的内存可能会导致 相当大的性能开销,尤其是在级联时 收藏量很大。确保权衡利弊 您定义的每个级联操作的


谢谢你的回答!但是你能提供一个更具体的“刷新”用法的例子吗?请检查我的答案更新。看起来这个问题更多的是关于$entity->refresh()操作的含义。