3

これは私が書いた関連コードです:

new SimpleJdbcInsert(dataSource)
    .withSchemaName("test")
    .withTableName("tableName")
    .usingGeneratedKeyColumns("idColumn");

を呼び出すとexecuteAndReturnKey(parameters)、コンソールで次のように表示されます。

WARN [org.springframework.jdbc.core.metadata.TableMetaDataProvider:locateTableAndProcessMetaData:336] (main:) 'tableName' のテーブル メタデータが見つかりません -- 列名を指定する必要があります

なぜこれが起こるのですか?列名を手動で指定できることは知っていますが、それは JdbcSimpleInsert を使用するポイントではないと思います。

  • MySQL のバージョンは 5.5.9 です
  • MySQL コネクタ/J 5.1.23
  • 春 3.2.1
4

2 に答える 2

0

別の MySQL サーバーで同じクエリを実行しているときに、次のエラーに遭遇しました: java.sql.SQLException: Parameter metadata not available for the given statement.
だから私は石で鳥を殺しました:)

したがって、JDBC 接続 URLgenerateSimpleParameterMetadata=trueに追加するだけで、すべてが期待どおりに機能します。

于 2013-02-15T09:14:26.590 に答える
0

別の理由で、同じエラーが発生しました。JDBC 接続文字列に、スキーマをリストしました。したがって、withSchemaName句を入れるとこのエラーが発生しました。私がそれを取り除いたとき、インサートは機能しました。

于 2017-05-13T21:41:03.447 に答える