是否可以处理Doctrine实体的多个状态?

时间:2017-03-13 17:13:17

标签: php symfony doctrine-orm

在Symfony 3项目中,使用Doctrine ORM我试图使用实体的多个状态。

通过数据库导入XML文件(已经来自此XML文件的先前版本)时,我需要并排实体的两种状态进行比较:

  • 实体的DB状态版本
  • 已合并但尚未保留的实体版本

这样的事情:

$DB_state_entity;
$not_persisted_entity;

if( $DB_state_entity->isSomething() && $not_persisted_entity->isSomethingElse() ){
    // Do something
}

有没有办法用Doctrine实现这类事情?

多个EntityManagers似乎不是为此而设计的。

修改

在阅读@Honza Rydrych回答之后,我通过EntityManager :: createNativeQuery在DB中请求所需的属性来实现我的目标。

A可以将合并的值与DB值进行比较。

1 个答案:

答案 0 :(得分:1)

如上所述,AFAIK无法访问实体状态。

但是我错过了为什么你会这样做?您可以将XML文件中的数据导入临时对象,进行比较,更新原始实体并将其保留。该应用程序将在memmory中有一个实体和临时对象,但您的场景将有两个"独立的"记忆中的物体。