Symfony 2来自另一个来源的Doctrine唯一ID

时间:2015-04-13 09:45:37

标签: symfony doctrine entity uniqueidentifier

我正在将大量数据拉到本地缓存,我拉的数据是json格式,并且每条记录都有唯一ID。

有没有办法告诉学说使用它作为表的id? 我只是用我的json中的数据来填充这些表,我不会从我的json pull中添加来自其他来源的任何新记录。

是否有可能让学说使用我的json pull中的字段作为主键?。

当我use doctrine:generate:entity 它会自动添加一个id字段,我希望摆脱这个并使用数据拉取中的uniqueID列。 ($ teamKey)

例如,这是我的实体

/**
 * Team
 *
 * @ORM\Table("fp_team)
 * @ORM\Entity(repositoryClass="FantasyPro\DataBundle\Entity\TeamRepository")
 */
class Team
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="teamKey", type="string", length=50, nullable=false)
     */
    private $teamKey;

/** 
     more properties ...........
*/

只是删除现有$id属性并将我的$ teamKey属性修改为:

/**
         * @var string
         * @ORM\Id
         * @ORM\Column(name="teamKey", type="string", length=50, unique=true, nullable=false)
         */
         private $teamKey;

它是否比那更复杂或不可能? 是否必须将学说的唯一ID字段称为$id

1 个答案:

答案 0 :(得分:1)

理论上,它取决于您的数据库。但是,一般来说,任何数据库类型都应该让你设置你想要的任何ID。

因此,您可以随时执行$entity->setId(),并使用该ID保留它,没有任何问题。