1

Grails プログラミングを始めたばかりで、他のアプリケーションによって事前定義されてアクセスされたテーブルにアクセスしようとしていました。テーブルには id、filename、msgcount の 3 つの列しか含まれていません。grails を介して正常に接続し、テーブルにアクセスしました。これまではすべて順調に進んでいましたが、メイン アプリケーション (以前はテーブルにアクセスしていました) を実行すると、テーブル属性の不一致に関するエラーが発生したため、テーブルの設計を調べたところ、余分な列があることがわかりました。 「バージョン」と名付けました。その追加の列には少し驚いていますが、いくつかの診断の後、その列が grails アプリケーションによって追加されていることに気付きました。

この余分な列の追加は正常ですか。grailsアプリケーションがテーブルの属性を変更しないようにするための解決策はありますか(つまり、余分な列の追加)、複数のアプリケーションで同じテーブルを使用する必要がある可能性があります。

4

1 に答える 1

2

はい、これが grails GORM のデフォルトの動作です。この説明を参照してください: http://grails.org/doc/latest/guide/GORM.html#optimisticLockingAndVersioning

次の 2 つの方法で解決できます。

a)データベーステーブルにバージョンフィールドを作成します

また

b) 次のように、ドメイン クラスからバージョン フィールドを無効にすることができます。

class YourDomainClass {

   static mapping = {
       version false
   }

   ...

}
于 2012-09-30T08:51:51.177 に答える