2017-03-23 18 views
-3

SQLステート[99999];エラーコード[17004];列の型が無効です。無効な列 型\ "\ "エラー\":\ "UncategorizedSQLException \"}"}uncategorized SQL削除クエリのSQLException

私の場合:ネストされた 例外はjava.sql.SQLExceptionのです私たちのDBで 1人のユーザーが1つのIDを持っていますこの1つのIDは複数の値を持つことができます。たとえば、私は1つのuserIdを持っています。私のuserIDには10の健康記録があります。だから私はこれらの10の健康記録をワンショットで削除しなければならない。だから、userIdとListの値を渡しています(データ型はNumberです)。未処理のクエリが機能しますが、Javaコードを通過するときに無効な列例外が発生します。助言がありますか?

Java実装のメソッドは、この呼び出しをすることです

@Override 
public void deleteSampleValue(BiometricPkDTO biometricPkDTO){ 
    update(deleteSampleValueSql,log,biometricPkDTO.getSeriesPk(),biometricPkDTO.getSamplePks()); 
} 

であると私はリソースフォルダに追加SQLクエリは

BIO_SERIES_PK = bio_sampleから削除しますか? と(?)のBIO_SAMPLE_PK

ありがとうございました。

+0

は、我々はコードを見ることができます:最終DAO実装方法は次のようになりますか? –

+0

Java実装方法は、\t @Override \t公共ボイドdeleteSampleValue(BiometricPkDTO biometricPkDTO){ \t \t更新(deleteSampleValueSql、ログ、biometricPkDTO.getSeriesPk()、biometricPkDTO.getSamplePks())です。 \t}リソースフォルダに追加されたSQLクエリIは、bio_sample から削除されます(BIO_SERIES_PK =? とBIO_SAMPLE_PK in(?) –

+0

これと質問にスタックトレースを追加します。 –

答えて

0

特定のIdに対して複数の削除アクションを実行しているので、NamedParameterJdbcTemplate(getJdbcTemplate()。getDataSource())を使用することをお勧めします。 MapSqlParameterSourceオブジェクトをインスタンス化し、参照変数を使用して入力をSQLクエリに渡します。

@Override ます。public void deleteSample(BiometricPkDTO biometricPkDTO){

MapSqlParameterSource parameterSource = new MapSqlParameterSource(); 
    parameterSource.addValue("seriesPk",biometricPkDTO.getSeriesPk()); 
    parameterSource.addValue("samplePks", biometricPkDTO.getSamplePks()); 

    namedParameterJdbcTemplate.update(deleteSampleSql,parameterSource); 
}