2

Я использую SimpleJdbcInsert, как,Укажите последовательность Oracle в объекте SimpleJdbcInsert для генерации ключа из Oracle последовательности

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, которая работает нормально. Я проверил много блогов, но не смог найти правильный блог, который использует последовательность Oracle с SimpleJdbcInsert.

ответ

0

Это потому, что jdbcTemplate пытается разобрать "MYSEQ.NEXTVAL" в lang, который является типом данных ID. Вы не можете отправлять SQL-запросы как именованные параметры.

Смежные вопросы