2

ich als, wirftGeben Oracle-Sequenz in SimpleJdbcInsert Objektschlüssel von Oracle Sequence

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); 

Aber es Fehler nur für ID-Spalte bin mit SimpleJdbcInsert zu erzeugen, arbeiten andere Spalten in Ordnung, die ich durch Kommentare aus der ID-Spalte bestätigt .

java.lang.NumberFormatException: null 

Ich überprüfte meine Oracle-Sequenz, die korrekt funktioniert. Ich habe viele Blogs überprüft, konnte aber kein richtiges Blog finden, das die Oracle-Sequenz mit SimpleJdbcInsert verwendet.

Antwort

0

Es ist, weil jdbcTemplate versucht, "MYSEQ.NEXTVAL" in eine Sprache zu analysieren, die der Datentyp ID ist. Sie können SQL-Anweisungen nicht als benannte Parameter senden.