0

我使用 Symfony2.0 和 Doctrine,我创建了这个实体:

class MetaInformationsQuestionUser
{
  /**
   * @ORM\Id
   * @ORM\ManyToOne(targetEntity="Myproject\Bundle\UserBundle\Entity\User")
   */
  private $user;

  /**
   * @ORM\Id
   * @ORM\ManyToOne(targetEntity="Myproject\Bundle\QuestionsBundle\Entity\MetaInformationsQuestion")
   */
  private $metainformationsquestion;

  /**
   * @var datetime $created
   *
   * @Gedmo\Timestampable(on="create")
   * @ORM\Column(type="datetime")
   */
  private $created;

  /**
   * @var datetime $updated
   *
   * @Gedmo\Timestampable(on="update")
   * @ORM\Column(type="datetime")
   */
  private $updated;

  /**
   * @var array $score
   *
   * @ORM\Column(name="score", type="array", nullable="true")
   */
  private $score;

因此,该实体是与属性的多对多关系的链接。(在这种情况下,得分和创建和更新日期)。

我的想法是添加每个用户玩的每个问题的记录,以及他获得的分数。

我的问题是我收到此错误:

SQLSTATE [23000]:违反完整性约束:1062 键 'PRIMARY' 的重复条目 '1-3'

所以我的问题是:我怎样才能将创建日期添加到主键,或者只是删除在此上有一个主键的事实?

4

1 回答 1

1

好,我知道了,

我需要补充:

   * @ORM\Id

在我创建的字段中:

  /**
   * @var datetime $created
   *
   * @ORM\Id
   * @Gedmo\Timestampable(on="create")
   * @ORM\Column(type="datetime")
   */
  private $created;

它做了我想要的!

以下是文档: https ://doctrine-orm.readthedocs.org/en/latest/reference/annotations-reference.html#annref-id

于 2012-12-27T12:07:04.680 回答