【问题标题】:Creating Index in Doctrine2 / Symfony2 Throws Semantical Error在 Doctrine2 / Symfony2 中创建索引会引发语义错误
【发布时间】:2012-03-22 10:04:01
【问题描述】:

我正在尝试使用注释为 Doctrine2 / Symfony2 中的表创建一个简单索引,但出现以下错误:

[语义错误] {My\Namespaces\Here} 类中的注释“@Index”从未被导入。您是否可能忘记为此注释添加“使用”语句?

我在任何文档中都找不到我应该“使用”哪个命名空间来添加索引功能。这是我的注释:

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

这里是我已经在使用的命名空间:

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;

我需要使用什么命名空间来添加此功能?

【问题讨论】:

    标签: symfony doctrine-orm


    【解决方案1】:

    看起来你需要:

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

    【讨论】:

    • 如何使用这种方法在多列上添加索引?
    • 如果我在列上设置unique 属性会怎样? SGBD 会自动在目标表列上设置一些索引吗?
    • @jitendra :只需在column 列表中添加更多列名,例如:@ORM\Table(indexes={@ORM\Index(name="email_address_idx", columns={"email_address", "username"})})
    【解决方案2】:

    您可以使用以下方法解决问题:

    use Doctrine\ORM\Mapping\Index;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      相关资源
      最近更新 更多