今天我感觉有点慢。我正在尝试做一些我认为非常简单的事情。我有一个名为'name'的属性的Domain类。我想'名称'有一个索引,我希望索引要求'名称'是唯一的。我已经设置了独特的约束,并尝试创建索引。我无法从Gorm docs中理解如何将唯一属性添加到索引。下面是一些代码:GORM映射:使索引独特
class Project {
String name
static hasMany = [things:Things]
static mapping = {
name index:'name_idx'
}
static constraints = {
name(unique:true)
}
}
一切都很好,与上述情况,在MySQL“从项目展示指标”做的时候,除了它显示我的名字键不是唯一的。我知道问题在于我没有在映射中指定唯一的,但坦率地说,gorm的文档让我头疼。我看到有关列的各种信息,但我无法在Web上的任何位置找到一个示例来显示我想要执行的操作。我不需要复杂的映射或复合键,我只想知道将上述唯一属性添加到映射声明的语法。欢迎任何建议。
我还做了一个Grails的出口模式,并看到以下内容:在
create index name_idx on project (name);
任何证据表明该指数需要唯一值
一个相关的后续问题是,一旦我做的是成功索引是唯一的,当我去保存一个Project实例并且该名称不是唯一的时,我应该期待什么类型的错误?是否抛出了特定的异常?我意识到,即使我检查给定的“名称”是唯一的,仍然有可能在我保存时可能会出现一个具有该名称的行。
我很确定我想要的语法很简单,但我找不到一个简单的例子来教育自己。我去过this页面,但没有解释如何执行唯一性。我想在名称索引级别强制执行它。
谢谢德里克。这看起来确实是对的。我想我的挂断是我不明白为什么我不能用简单的语法做到这一点,但在一天结束时,这并没有太大的不同!我投这个为“正确”的答案。再次感谢。 – 2011-04-04 11:28:20
很高兴它为你的富有工作。既然这是你自己的问题,你应该接受答案,而不是投票。 :) – 2011-04-05 04:21:31