在Grails的域中添加索引键

fir*_*iel 7 grails grails-orm

我尝试按照此引用,现在这是我的域代码:

class SnbrActVector {

    long nid
    String term
    double weight

    static mapping = {
        version false
        nid index:'Nid_Idx'
    }

    static constraints = {
        term(blank:false)
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是为nid列添加索引键.我删除了现有的表并再次运行应用程序,然后重新创建表.然而,当我检查索引列表中,我看不到的Nid_Idx,只有PRIMARY.我是否必须手动创建索引并Nid_idx在我的mysql数据库中命名?

小智 5

是的,仅在使用时才有效dbCreate = "create"

假设我有一个空数据库,我dbCreate 将数据库设置为"update"。在这种情况下,不会创建索引。

  • 相对于其文档,这绝对是个难题。在4.3节中声明“更新-创建丢失的表和索引,并在不删除任何表或数据的情况下更新当前模式”。尽管如此,此旧错误http://jira.grails.org/browse/GRAILS-2152指出,它与Hibernate更新问题有关,因此无法修复。 (2认同)

lee*_*tts 0

您可能需要添加列名称才能使其触发,例如

static mapping = {
        version false
        nid column:'nid', index:'Nid_Idx'
    }
Run Code Online (Sandbox Code Playgroud)