2016-01-07 106 views
2

因此,我终于将codenarc引入到我的项目构建过程中,并且收到以下警告 - GrailsDomainReservedSqlKeywordNameGrails域名 - 保留关键字名称

问题是我有相当多的这些警告,因为我已经命名了不少域字段为data。例如

class FormData { 

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

此根据codenarc

命名域类(或其场)与这样的关键字使SQL 模式创建的错误和/或冗余表/列名称的影响映射。

我的问题是:我现在应该重新命名我的所有data性质,如果是,如何以最佳方式(可能使用数据库迁移)做呢?

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

+0

grails不知道你将使用哪种方言,这就是为什么它没有做这项工作,并留下来方言来说,某些列名称等是否有效的数据库或不。 –

+0

尽管codenarc只是警告你,而不是强迫删除它。您可以使用数据库迁移,但不使用数据列更改您的域字段名称:'some_other_name'。即使在这之后,如果codenarc说问题,然后codenarc需要一些特定于grails的升级:) –

回答

0

有一种方法可以阻止Grails的发生。在您的FormData域类添加一个这样的映射:

class FormData { 

    Long data 

    static constraints = { 
     data nullable: true 
    } 

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

的Grails /休眠允许你使用反引号('),以允许进行转义的名字,现在你不用编写任何数据库迁移。您可以直接使用您的data字段。

+0

@downvoter这里有什么问题?你能否解释一下是否有帮助,而不是下调。 –