3

私は SimpleJdbcInsert を次のように使用しています。

SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource).withTableName(TABLE_NAME).withSchemaName(SCHEMA_NAME);

Map<String, Object> namedParameterMap = new HashMap<String, Object>();
namedParameterMap.put("ID", "MYSEQ.NEXTVAL");
namedParameterMap.put("COLUMN1NAME",obj1.getColumn1Value());
namedParameterMap.put("COLUMN2NAME", obj1.getColumn2Value());

simpleJdbcInsert.withoutTableColumnMetaDataAccess().execute(namedParameters);

しかし、ID列のみでエラーがスローされ、ID列をコメントアウトして確認した他の列は正常に機能します。

java.lang.NumberFormatException: null

正常に動作している Oracle Sequence を確認しました。多くのブログをチェックしましたが、SimpleJdbcInsert で Oracle シーケンスを使用している適切なブログを見つけることができませんでした。

4

2 に答える 2

2

これは、jdbcTemplate"MYSEQ.NEXTVAL"が のデータ型である long に解析しようとするためですID。SQL ステートメントを名前付きパラメーターとして送信することはできません。

于 2016-09-22T12:38:07.090 に答える