执行'INSERT INTO命题时发生异常

时间:2016-01-28 14:21:10

标签: php symfony doctrine-orm

用户拥有多项服务并想要添加服务用户的事实 这是我的实体:

/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User extends BaseUser
{
    /**
     * @ORM\OneToMany(targetEntity="bundle\FrontBundle\Entity\Proposition", mappedBy="user", cascade={"persist"})
     * @ORM\JoinColumn(nullable=true)
     */
    protected $propositions;
    public function __construct()
    {
        $this->proposition = new ArrayCollection();

    }
}

/**
 * Proposition
 *
 * @ORM\Table(name="proposition")
 * @ORM\Entity
 */
class Proposition
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\OneToOne(targetEntity="bundle\FrontBundle\Entity\Type", cascade={"persist", "remove"})
     * @ORM\JoinColumn(nullable=false)
     */
    protected $type;

    /**
     * @ORM\OneToOne(targetEntity="bundle\FrontBundle\Entity\NomPrestation", cascade={"persist", "remove"})
     * @ORM\JoinColumn(nullable=false)
     */
    protected $nom;

    /**
     * @ORM\ManyToOne(targetEntity="bundle\FrontBundle\Entity\User", inversedBy="propositions", cascade={"persist", "merge"})
     * @ORM\JoinColumn(nullable=false)
     */
    protected $user;

}


/**
 * Prestation
 *
 * @ORM\Table(name="type")
 * @ORM\Entity
 */
class Type
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var string
     *
     * @ORM\Column(name="type", type="string", length=255)
     */
    protected $type;
}


/**
 * TypePrestation
 *
 * @ORM\Table(name="nom_prestation")
 * @ORM\Entity
 */
class NomPrestation
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var string
     *
     * @ORM\Column(name="nom", type="string", length=255)
     */

    protected $nom;

  }

我的问题是这样,当我添加第一个提案并且当我添加另一个时一切正常我有这个错误。

  

使用参数[3442,232,1,4,1]执行'INSERT INTO命题(prix,prix_main_oeuvre,type_id,nom_id,user_id)VALUES(?,?,?,?,?)'时发生异常:

     

SQLSTATE [23000]:完整性约束违规:1062密钥'UNIQ_C7CDC353C54C8C93'重复输入'1'

有人能帮我看清楚吗?

1 个答案:

答案 0 :(得分:0)

您遇到此错误,因为已存在标识为1的类型。

我想你想多次重复使用相同的类型。如果是这样,您必须将PropositionType之间的关系从oneToOne更改为oneToMany

我怀疑这同样适用于您的NomPrestation关系。如果您不重复使用这些NomPrestation,则应考虑将其添加为Proposition的属性,而不是实体。