如何在学说2中使用我的主键策略

时间:2012-11-30 15:36:16

标签: symfony doctrine

我有一个实体(此实体从itunes.apple.com解析)

/**
 * App
 */
abstract class App extends ContainerAware implements AppInterface
{
  /**
   * Using traits
   */
  use AppImageTrait,
      AppLanguageTrait,
      AppCommonTrait,
      AppCategoriesTrait;

  /**
   * @var integer
   * 
   * @ORM\Id
   * @ORM\Column(name="apple_id", type="integer")
   */
  protected $apple_id;

此实体具有方法setAppleId和getAppleId

我希望将主键(id)保存为apple id

这是如何工作的?

1 个答案:

答案 0 :(得分:2)

截至@ORM\GeneratedValue注释的文档:

class App implements AppInterface
{
    use AppImageTrait, AppLanguageTrait, AppCommonTrait, AppCategoriesTrait;

    /**
     * @var integer
     * 
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="NONE")
     * @ORM\Column(name="apple_id", type="integer")
     */
    protected $apple_id;

    /* @param int $appleId */
    public function setAppleId($appleId)
    {
        $this->apple_id = (int) $appleId;
    }

    /* @return int */
    public function getAppleId()
    {
        return $this->apple_id;
    }
}

这可以防止ORM使用自动增量ID,同时保留设置标识符的任务。

作为旁注:不要让您的实体容器识别。