Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
原则2 ORM和MongoDB ODM映射在同一类上_Orm_Mongodb_Doctrine Orm_Odm - Fatal编程技术网

原则2 ORM和MongoDB ODM映射在同一类上

原则2 ORM和MongoDB ODM映射在同一类上,orm,mongodb,doctrine-orm,odm,Orm,Mongodb,Doctrine Orm,Odm,是否可以使用注释将同一类映射到ORM和ODM 我们正在决定使用什么,所以我们想做一些性能测量,我们还希望能够轻松地切换持久性映射器。我已经完成了管理者统一,现在我想统一课程。现在,我在单独的名称空间中为实体和文档创建了每个类的副本,我发现它们有点多余 我读了这篇文章,但最后我想他们使用了两个不同的类,每个类都在自己的名称空间中 有人试过吗?我从来没有试过,但完全可以将ODM和ORM映射放在完全相同的类上 问题可能取决于这两个持久性后端之间的数据同步 和实体API。例如,如果您有一个manyton

是否可以使用注释将同一类映射到ORM和ODM

我们正在决定使用什么,所以我们想做一些性能测量,我们还希望能够轻松地切换持久性映射器。我已经完成了管理者统一,现在我想统一课程。现在,我在单独的名称空间中为实体和文档创建了每个类的副本,我发现它们有点多余

我读了这篇文章,但最后我想他们使用了两个不同的类,每个类都在自己的名称空间中


有人试过吗?

我从来没有试过,但完全可以将ODM和ORM映射放在完全相同的类上

问题可能取决于这两个持久性后端之间的数据同步
和实体API。例如,如果您有一个manytone关联,ODM将有一个与ORM不同的内存内引用。因此,它可能会覆盖您使用的对象。

我从未尝试过,但完全有可能将ODM和ORM映射放在完全相同的类上

问题可能取决于这两个持久性后端之间的数据同步
和实体API。例如,如果您有一个manytone关联,ODM将有一个与ORM不同的内存内引用。因此,它可能会覆盖您正在使用的对象。

以前没有尝试过这一点,但是如果我可以建议您的实体/文档类使用不同的xml/yml映射?

以前没有尝试过这一点,但是如果我可以建议您的实体/文档类使用不同的xml/yml映射?

是的,您可以可以我已经使用symfony和注释完成了这项工作,所以我想您也可以使用您正在使用的任何环境来管理它

首先,我在实体上添加了两个注释:

<?php
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;

/**
 * User
 *
 * @ORM\Entity
 * @ODM\Document
 */
class User
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ODM\Field()
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=200, nullable=false)
     * @ODM\Field()
     */
    private $email;
}

是的,你可以。我已经使用symfony和注释完成了这项工作,所以我想您也可以使用您正在使用的任何环境来管理它

首先,我在实体上添加了两个注释:

<?php
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;

/**
 * User
 *
 * @ORM\Entity
 * @ODM\Document
 */
class User
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ODM\Field()
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=200, nullable=false)
     * @ODM\Field()
     */
    private $email;
}