我尝试了这个reference,现在这是我的域名代码:
class SnbrActVector {
long nid
String term
double weight
static mapping = {
version false
nid index:'Nid_Idx'
}
static constraints = {
term(blank:false)
}
}
我想要做的是为nid
列添加索引键。我删除了现有的表并再次运行应用程序,然后重新创建表。但是,当我检查索引列表时,我看不到Nid_Idx
,只看到PRIMARY
。我是否必须手动创建索引并在我的mysql数据库中将其命名为Nid_idx
?
答案 0 :(得分:4)
是的,仅在使用dbCreate = "create"
时才有效。
假设我有一个空数据库而我的dbCreate
设置为"update"
。在这种情况下,不会创建索引。
答案 1 :(得分:1)
您的语法是正确的,因此可能是另一个问题或Grails错误。 我的建议:
grails create-app
作为唯一的域(SnbrActVector
)创建一个新的grails应用程序(grails create-domain...
)。复制你的代码。dbCreate = "create-drop"
如果您看到为nid
列创建的索引,则表示您的应用程序存在问题(您可能没有使用“create-drop”或其他内容)
如果未创建索引=>这是一个grails错误,你应该打开一个JIRA问题here
答案 2 :(得分:0)
您可能需要添加列名以使其触发,例如
static mapping = {
version false
nid column:'nid', index:'Nid_Idx'
}