1

Grails で学校のプロジェクト用の簡単な Web アプリを作成しようとしています。サーバーへのアクセス、保存、削除などはできますが、最初にアプリを実行するたびに大量の SQL エラーがスローされます。Grails 2.0.3 と mysql-connector-java-5.1.19 を使用しています。

次のエラーが発生し、他の多くの人がそれを気に入っています。

エラー 2012-04-25 14:28:54,009 [pool-5-thread-1] エラー hbm2ddl.SchemaUpdate - 失敗: テーブル character_trait を変更し、インデックス FK93D74D785F2F8048 (character_traits_id) を追加し、制約 FK93D74D785F2F8048 を追加します。外部キー (character_traits_id) は文字 (id) を参照します

Error 2012-04-25 14:28:54,009 [pool-5-thread-1] ERROR hbm2ddl.SchemaUpdate - SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、1 行目の「character (id)」付近で使用する正しい構文を確認してください。

また、findby 動的ファインダーを使用して照会する場合:

クラス com.mysql.jdbc.exceptions.MySQLSyntaxErrorException

メッセージ SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、1 行目の「character this_ where this_.player_id=1 limit 1」を使用する正しい構文を確認してください。

なぜこれが起こっているのかについてのアイデアはありますか?

4

1 に答える 1

1

CHARACTERはMySQLの予約語です。テーブルまたは列の名前として使用するには、引用符で囲む必要があります。次のように、テーブル マッピングで引用できます。

class Character {
    static mapping = {
        table name: '`character`'
    }
}
于 2012-04-25T20:33:54.893 に答える