0

Spring の SimpleJdbcInsert を使用するコードに苦労しています。

SimpleJdbcInsert jdbcInsert = (new SimpleJdbcInsert(transactionManager.getDataSource())
                .withTableName(MY_TABLE).usingGeneratedKeyColumns("my_table_id")).usingColumns(MY_COLUMNS);

これは、スキーマを設定していない場合のように、デフォルトのスキーマが「PUBLIC」である接続で使用すると正常に機能します。ただし、いくつかのスキーマを追加してから、接続のデフォルト スキーマとして MY_SCHEMA1 を作成すると、これが機能しなくなります。テーブル MY_TABLE がまったく見つかりません。

.withSchemaName(MY_SCHEMA1) を SimpleJdbcInsert に追加すると、機能し始めます。しかし、私にはその選択肢がありません。

助けてください。

注: H2 と DB2 でこれを使用しています。

4

2 に答える 2

0

私の知る限り、単一のDBが複数のスキーマに分割されているときはいつでも、(デフォルトのものに関係なく)指しているスキーマを具体的に指定する必要があります. add .withSchemaName(MY_SCHEMA1) を使用すると、それが正常に機能する理由だと思います。ただし、このオプションがないことを述べたように、サーバー構成ファイル、アプリケーションのプロパティ ファイルなど、別の場所にスキーマ名を指定できます。

于 2013-11-27T09:49:15.867 に答える