【问题标题】:What's the purpose of persisting entities?持久化实体的目的是什么?
【发布时间】:2016-03-13 10:40:44
【问题描述】:

我已经多次阅读http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/working-with-objects.html 的文档,但我仍然不明白。

持久化实体的目的是什么?

我有以下代码

$em = $this->getDoctrine()->getManager();
$user = $this->container->get('security.context')->getToken()->getUser();
if ($user) {
    $user->enabled(1);
    $em->flush();
}

效果很好。

为什么要添加

$em->persist($user);

在冲洗之前?

【问题讨论】:

  • 如果您能接受我的回答,如果它真正回答了您的问题,我的代表将不胜感激。
  • 有没有机会在这里接受答案?

标签: symfony doctrine-orm


【解决方案1】:

persisting 一个实体只是意味着实体管理器可以管理该实体。否则它不知道。

编辑:如果您正在使用从实体管理器开始的实体(在您的情况下,$user),则不需要持久化,因为实体管理器已经“知道”它。所以只有在创建 NEW 实例时才需要持久化。

通过将实体传递给 EntityManager#persist($entity) 方法可以使实体持久化。通过对某个实体应用持久化操作,该实体变为 MANAGED,这意味着它的持久性从现在开始由 EntityManager 管理。因此,当调用 EntityManager#flush() 时,此类实体的持久状态随后将与数据库正确同步。

http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/working-with-objects.html#persisting-entities

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    相关资源
    最近更新 更多