Pourquoi mon Symfony2 @UniqueEntity contrainte de ne pas travailler du tout?

J'ai l'entité suivante classe dans mon application:

<?php

namespace ...;

//use ...
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;;
//...

/**
 * @ORM\Table(name="sc_user")
 * @ORM\Entity(repositoryClass="...\UserRepository")
 * @ORM\HasLifecycleCallbacks()
 * @UniqueEntity(fields={"email", "username"})
 */
class User implements UserInterface, \Serializable, EquatableInterface
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string $email
     *
     * @ORM\Column(name="email", type="string", length=255, unique=true)
     *
     * @Assert\NotBlank(groups={"registration"})
     * @Assert\Email(groups={"registration"})
     */
    private $email;

    /**
     * @var string $username
     *
     * @ORM\Column(name="username", type="string", length=32, unique=true)
     *
     * @Assert\NotBlank(groups={"registration"})
     */
    private $username;

    //...
}

L' @UniqueEntity contrainte est d'être ignoré. J'ai essayé différentes saveurs, dont:

@UniqueEntity(fields={"email", "username"})

et

@UniqueEntity(fields={"email"})
@UniqueEntity(fields={"username"})

et, par la Symfony2 documentation ici: http://symfony.com/doc/current/reference/constraints/UniqueEntity.html

@UniqueEntity("email")
@UniqueEntity("username")

Rien je ne, travaux. Au lieu d'obtenir une erreur de validation de formulaire comme prévu, je suis l'exception suivante:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
'[email protected]' for key 'UNIQ_D8183973E7927C74'

C'est tout simplement faux! Quelqu'un sait-il comment résoudre ce problème?

OriginalL'auteur josef.van.niekerk | 2012-08-17