Php doctrine2将数据保存并恢复到实体图中

Php doctrine2将数据保存并恢复到实体图中,php,serialization,symfony,doctrine-orm,symfony-2.1,Php,Serialization,Symfony,Doctrine Orm,Symfony 2.1,我用的是symfony2和条令2 我开发了一个功能,用户可以从外部源将数据导入数据库。我现在必须实现“恢复”功能。基本上,用户应该能够通过单击撤消整个导入操作 这种行为与mysql回滚或mysqldump+重新导入数据子集的行为相同,但我需要在应用程序级别使用Doctrine 2 序列化和非序列化代理或使用工作单元都没有成功。 我现在实现了一个实用程序类,用于将实体(以及指定的关系)保存/恢复到数组或从数组中恢复实体,但是管理所有关系需要大量的工作 有更简单的解决方案吗?< P>我不认为下面是一

我用的是symfony2和条令2

我开发了一个功能,用户可以从外部源将数据导入数据库。我现在必须实现“恢复”功能。基本上,用户应该能够通过单击撤消整个导入操作

这种行为与mysql回滚或mysqldump+重新导入数据子集的行为相同,但我需要在应用程序级别使用Doctrine 2

序列化和非序列化代理或使用工作单元都没有成功。 我现在实现了一个实用程序类,用于将实体(以及指定的关系)保存/恢复到数组或从数组中恢复实体,但是管理所有关系需要大量的工作


有更简单的解决方案吗?

< P>我不认为下面是一个优雅的解决方案,因为它是非常侵入性的,但它可能会帮助,并且最有可能是非常有效的:

为每个实体指定一个引用导入实体的导入字段。恢复时,只需删除映射到给定导入的所有实体。如果修改添加导入字段的实体太过侵扰或其他选项,则可以考虑将导入映射到特定实体的OnToToOne关系。这也多少减少了耦合


如果导入也包含更新,事情显然会变得更加复杂;导入后对数据进行的修改也是如此。还原将失败或级联到新实体。

我放弃了通用实用程序类,它几乎完全可以工作,除了一些小的边缘情况,这使得一切都过于复杂。出于简单性和时间的原因,我最终实现了一个自定义的数据转换器,可以轻松地对其进行序列化