1

我刚开始 Grails 编程,我试图访问预定义并由其他应用程序访问的表,表仅包含 3 列 id、filename、msgcount。我通过 grails 成功连接并访问了表。直到这一切都很好,但是当我运行主应用程序时(以前是访问表)我遇到了一个错误,这是关于表属性不匹配的,所以我检查了表设计,发现有一个额外的列命名为“版本”。我对那个额外的列有点惊讶,但经过一些诊断后,我意识到该列是由 grails 应用程序添加的。

这种额外列的添加是否正常。是否有任何解决方案使 grails 应用程序不会更改表的属性(即添加额外的列),这可能会限制我们将同一个表用于多个应用程序。

4

1 回答 1

2

是的,这是 grails GORM 的默认行为。看到这个解释: http: //grails.org/doc/latest/guide/GORM.html#optimisticLockingAndVersioning

您可以通过两种方式解决它:

a)在您的数据库表中创建一个版本字段

或者

b) 您可以从您的域类中禁用版本字段,如下所示:

class YourDomainClass {

   static mapping = {
       version false
   }

   ...

}
于 2012-09-30T08:51:51.177 回答