假设,Event
域类具有eventDate
属性。此eventDate存在唯一约束,因此事件必须是每年或每月唯一。如何在GORM中指定它?
class Event{
String name
Date eventDate
static constraints{
eventDate() //----->unique per year or say month
}
}
答案 0 :(得分:0)
你不能。您需要一些基于函数的索引,它可以根据列值的计算来构建索引。这是supported in Oracle和其他一些数据库,但它没有标准语法,也不支持GORM。
当然,您可以为您在迁移脚本中使用的数据库明确执行此操作,例如:当使用database-migration插件时,但是这将在数据库中完成,并且域类中的任何内容都不会表明它正被使用。如果你使用H2进行集成测试,你可能没有这个功能,并且有可能在不同的环境中获得不同的结果,或者必须找出那里的等效语法。
另一个选项是一个小的非规范化,你可以在插入和更新之前添加第二列并在域类中计算它的值,并在其上构建一个常规索引。