Spring JDBC & Oracle DB 12c: java.sql.SQLException: Ungültige Spalte Typ. Warum?

Ich bin kämpfen, mit folgender Ausnahme:

org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [update EVALUATION_SHEET set STATUS=?, LAST_EDITED=? where id=?]; SQL state [99999]; error code [17004]; Invalid column type; nested exception is java.sql.SQLException: Invalid column type

Welche geworfen wird, hier:

jdbcTemplate.update("update E_SHEET set STATUS=?, LAST_EDITED=? where id=?",
                new Object[]{eSheet.getStatus().ordinal(), eSheet.getLastEditDate(), eSheet.getId()},
                new Object[]{OracleTypes.NUMBER, OracleTypes.TIMESTAMP, OracleTypes.NUMBER});

Die Datenbank-Tabelle wird wie folgt erstellt:

create table E_SHEET (
  ID number not null unique,
  ID_POSITION number not null,
  STATUS number default 0 not null,
  ID_EXAMINER number not null,
  LAST_EDITED timestamp not null);

Ich habe keine Ahnung, was das problem verursacht. Diese Methode:

 eSheet.getLastEditDate()

gibt java.util.Date-Objekt. Ich bin mit Spring JDBC-template mit Spring Boot und Oracle DB 12c als datasource.

  • last_edited ein Zeitpunkt ist, es bedeutet, dass Sie müssen verwenden Sie die timestamp-Objekt: new Timestamp(eSheet.getLastEditDate().getTime())
  • Das statement sagt im Grunde nur "ich habe diese andere Ausnahme". Post, dass man.
Schreibe einen Kommentar