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 に答える