4

我需要帮助。这是情况。我正在使用 Symfony2 + FOSRestBundle,我创建了我的实体类来通过 Doctrine 将我的数据存储在 MySQL 中。我还编写了所有控制器来获取数据并将其直接转换到我的数据库中。这很好用。

namespace Stat\ContentBundle\Entity;
use Doctrine\ORM\Mapping as ORM;

/** 
 * @ORM\Entity
 * @ORM\Table(name="agegroups")
 */
 class Table
 {
 * @ORM\Column(name="id", type="smallint")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
 protected $id;

 /**
 * @ORM\Column(name="description", type="string", length=50)
 * @Type("string")
 */
 protected $description;

现在我确实想使用相同的实体声明,并使用更多信息对其进行扩展,以便与 MongoDB 一起使用。我想将我的数据存储在 MySQL 和 MongoDB 中。要使用 mongodb-odm-bundle 重用代码,我必须使用命名空间 Document - 这只是问题的开始。如果我想重用我的控制器,我也必须为 MongoDB 重写该代码。

namespace Stat\ContentBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/** 
 * @MongoDB\Document
 * @ORM\Entity
 * @ORM\Table(name="agegroups")
 */

 class Table
 {
 * @ORM\Column(name="id", type="smallint")
 * @ORM\Id
 * @MongoDB\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
 protected $id;

 /**
 * @ORM\Column(name="description", type="string", length=50)
 * @MongoDB\String
 * @Type("string")
 */
 protected $description;

 /**
 * @ORM\Column(name="mySqlOnly", type="string", length=50)
 * @Type("string")
 */
 protected $mySqlOnly;

 /**
 * @MongoDB\String
 */
 protected $mongoDbOnly;    

有没有一种简单的方法可以为基于文档的数据库和关系数据库使用 Doctrine-database 模式?

4

1 回答 1

5

也许这会有所帮助: 混合 ORM 和 MongoDB ODM

使用 Doctrine2 的数据库 nybrid 很容易,因为您有一个实体 - 加上一个文档管理器。

于 2013-01-24T08:06:52.993 回答