【发布时间】:2018-04-24 23:03:12
【问题描述】:
我正在处理从一个数据库到另一个数据库的同步实体。我为 ORM 和 ODM 映射了实体,例如:
/*
* @ODM\Document(
* repositoryClass="App\Lib\Repositories\ProductRepository",
* collection="products"
* )
* @ODM\InheritanceType("COLLECTION_PER_CLASS")
*
* @ORM\Entity(
* repositoryClass="App\Lib\Repositories\Legacy\LegacyProductRepository"
* )
* @ORM\Table(name="product")
*
* @ORM\HasLifecycleCallbacks()
* @ODM\HasLifecycleCallbacks()
*/
class Product extends Article
效果很好,但我想从 mongo db 的文档管理器中加载实体并将其保存到 ORM:
$product = $this->documentManager->find(Product::class, $id);
$this->entityManager->merge($product);
$this->entityManager->flush();
但我对关系有疑问。如何在合并产品时保留相关实体(例如 ProductAction)?
【问题讨论】:
-
合并产品时是否要将“ProductAction”也合并到 ORM 中?在这种情况下, cascade="merge" 可能会起作用,stackoverflow.com/questions/24612664/… 或者您想链接到 Mongo db 中的“ProductAction”文档?在这种情况下,github.com/Atlantic18/DoctrineExtensions/blob/v2.4.x/doc/… 会做你想做的事。
标签: php mongodb doctrine-orm orm