在Symfony 3项目中,使用Doctrine ORM我试图使用实体的多个状态。
通过数据库导入XML文件(已经来自此XML文件的先前版本)时,我需要并排实体的两种状态进行比较:
这样的事情:
$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值进行比较。
答案 0 :(得分:1)
如上所述,AFAIK无法访问实体状态。
但是我错过了为什么你会这样做?您可以将XML文件中的数据导入临时对象,进行比较,更新原始实体并将其保留。该应用程序将在memmory中有一个实体和临时对象,但您的场景将有两个"独立的"记忆中的物体。