【问题标题】:Grails unique constraint on year field onlyGrails 仅对年份字段的唯一约束
【发布时间】:2015-01-06 16:37:30
【问题描述】:

说,Event 域类具有 eventDate 属性。此 eventDate 有一个唯一约束,因此事件必须每年或每月唯一。如何在 GORM 中指定这个?

class Event{
   String name
   Date eventDate

  static constraints{    
      eventDate() //----->unique per year or say month
  }

}

【问题讨论】:

    标签: grails grails-orm grails-domain-class


    【解决方案1】:

    你不能。您将需要基于函数的索引之类的东西,该索引基于列值的计算来构建索引。这是supported in Oracle 和其他一些数据库,但没有标准语法,GORM 也不支持。

    当然,您可以为您在迁移脚本中使用的数据库显式执行此操作,例如当使用database-migration 插件时,但这将在数据库中完成,并且域类中不会有任何内容表明它正在被使用。如果你使用 H2 做集成测试,你要么没有这个特性,在不同的环境中得到不同的结果,要么必须找出等效的语法。

    另一个选项是一个小的非规范化,您添加第二列并在插入和更新之前在域类中计算其值,并在其上构建常规索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      相关资源
      最近更新 更多