2

所以我终于引入codenarc了我的项目的构建过程,我收到了以下警告 - GrailsDomainReservedSqlKeywordName

问题是我有很多这样的警告,即因为我已经将很多域字段命名为data. 例如

class FormData {

  Long data
  static constraints = {
    data nullable: true
  }
  ...

根据这个效果codenarc

使用这样的关键字命名域类(或其字段)会导致 SQL 模式创建错误和/或冗余表/列名称映射。

我的问题是:我现在是否应该重命名我的所有data属性,如果是,如何最好地做到这一点(也许使用数据库迁移)?

我只是想知道为什么 Grails 文档没有警告不要使用这些保留关键字。也许他们应该。

4

1 回答 1

3

有一种方法可以使用 Grails 来防止这种情况。FormData在您的域类中添加一个映射,如下所示:

class FormData {

    Long data

    static constraints = {
        data nullable: true
    }

    static mapping = {
        data column: '`data`'
    }
}

Grails/Hibernate 允许您使用反引号 (`) 来转义名称,现在您不必编写任何数据库迁移。您可以简单地按data原样使用您的领域。

于 2016-01-07T09:01:54.903 回答