2012-03-04 16 views
31

Estoy intentando crear un simple índice a una tabla en Doctrine2/Symfony2 utilizando anotaciones y estoy consiguiendo el error siguiente:Crear Índice en Doctrine2/Symfony2 Emite un error semántico

[Semantical Error] The annotation "@Index" in class {My\Namespaces\Here} was never imported. Did you maybe forget to add a "use" statement for this annotation?

no puedo encuentre en cualquier documentación qué espacio de nombre se supone que debo "usar" para agregar la funcionalidad del índice. Aquí está mi anotación:

@ORM\Table(indexes={@Index(name="email_address_idx", columns={"email_address"})}) 

Y aquí están los espacios de nombres que ya estoy utilizando:

use Doctrine\ORM\Mapping as ORM; 
use Symfony\Bridge\Doctrine\Validator\Constraints as DoctrineAssert; 
use Gedmo\Mapping\Annotation as Gedmo; 
use Symfony\Component\Validator\Constraints as Assert; 

Qué espacio de nombres necesito para utilizar para agregar esta funcionalidad?

Respuesta

101

Parece que necesitas:

@ORM\Table(indexes={@ORM\Index(name="email_address_idx", columns={"email_address"})}) 
+0

perfecto. ¡Gracias! – Dan

+0

¿Cómo agregar índices en múltiples columnas usando este enfoque? – jitendra

+0

¿Qué sucede si configuro el atributo 'unique' en una columna? ¿El SGBD configurará automáticamente algún índice en la columna de la tabla de destino? – Stphane

14

Usted puede usar lo siguiente para resolver el problema:

use Doctrine\ORM\Mapping\Index;