Php 是否有可能处理一个实体的多个状态?

Php 是否有可能处理一个实体的多个状态?,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,在symfony3项目中,我试图使用实体的多个状态 当通过数据库导入XML文件(该文件已经来自此XML文件的早期版本)时,我需要将实体的两种状态并排进行比较: 实体的DB状态版本 已合并但尚未持久化的实体版本 大概是这样的: $DB_state_entity; $not_persisted_entity; if( $DB_state_entity->isSomething() && $not_persisted_entity->isSomethingElse()

在symfony3项目中,我试图使用实体的多个状态

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

  • 实体的DB状态版本
  • 已合并但尚未持久化的实体版本
大概是这样的:

$DB_state_entity;
$not_persisted_entity;

if( $DB_state_entity->isSomething() && $not_persisted_entity->isSomethingElse() ){
    // Do something
}
有没有一种方法可以用教义来实现这种事情

多实体管理器似乎不是为此而设计的

编辑:

在阅读了@Honza Rydrych answer之后,我通过EntityManager::createNativeQuery请求数据库中所需的属性,从而实现了我的目标


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

A是否可以按照上述方式访问实体状态


但我没抓住重点你为什么要那样做?您可以将XML文件中的数据导入临时对象,进行比较,更新原始实体并将其持久化。该应用程序在memmory中将有一个实体和一个临时对象,但您的内存中也将有两个“独立”对象。

谢谢您的回复。我想这样做,因为我的实体中有一些属性,包括ID,它们不是XML的一部分,我无法从原始XML中检索这些信息。我正在使用JMS序列化程序和EntityManager::merge()重新计算这些信息。不过还是谢谢你。我会考虑改变我的方法。