来自另一个来源的 Symfony 2 Doctrine 唯一 ID
Symfony 2 Doctrine unique id from another source
我正在提取大量数据以在本地缓存,我提取的数据采用 json 格式,并且每条记录都有唯一 ID。
有什么方法可以让 doctrine 使用这个作为 table 的 ID?
我只会用我的 json 中的数据填充这些 table,我不会仅从我的 json 拉取中添加来自其他来源的任何新记录。
是否可以从我的 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
?
理论上,这取决于您的数据库。但是,一般来说,任何数据库类型都应该允许您设置您想要的任何 ID。
因此,您随时可以随时执行 $entity->setId()
,并使用该 ID 保留它,没有问题。
我正在提取大量数据以在本地缓存,我提取的数据采用 json 格式,并且每条记录都有唯一 ID。
有什么方法可以让 doctrine 使用这个作为 table 的 ID? 我只会用我的 json 中的数据填充这些 table,我不会仅从我的 json 拉取中添加来自其他来源的任何新记录。
是否可以从我的 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
?
理论上,这取决于您的数据库。但是,一般来说,任何数据库类型都应该允许您设置您想要的任何 ID。
因此,您随时可以随时执行 $entity->setId()
,并使用该 ID 保留它,没有问题。