Zum Beispiel:
Code: Select all
public int[] batchUpdate(List pojos) throws DaoException {
SqlParameterSource[] parameters = new SqlParameterSource[pojos.size()];
for (int i = 0; i < pojos.size(); i++) {
parameters[i] = new BeanPropertySqlParameterSource(pojos.get(i));
}
try {
return namedParameterJdbcTemplate.batchUpdate(SQL_UPDATE, (SqlParameterSource[]) parameters);
} catch (Exception ex) {
throw new DaoException(ex);
}
}
Ich habe diesen Fehler:
Verursacht durch: org.h2.jdbc.JdbcSQLException: Wert zu lang für Spalte
"STATUS CHARACTER VARYING(20) NOT NULL":
"'aced00057e7200466f72672e67656e792e7064702e6669726562697264732e67 656e79746f74652e646f6d61696e6d6f64656c2e6265742e4265744465636f6...
(258)"; SQL-Anweisung: UPDATE ... SET ..., Status = ? WO id = ? [22001-187] bei
org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
bei org.h2.message.DbException.get(DbException.java:179) bei
org.h2.table.Column.validateConvertUpdateSequence(Column.java:327) unter
org.h2.table.Table.validateConvertUpdateSequence(Table.java:737) unter
org.h2.command.dml.Update.update(Update.java:125) unter
org.h2.command.CommandContainer.update(CommandContainer.java:78) unter
/>org.h2.command.Command.executeUpdate(Command.java:254) at
org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:157)
at
org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1183)
at
org.springframework.jdbc.core.JdbcTemplate$4.doInPreparedStatement(JdbcTemplate.java:1005)
at
org.springframework.jdbc.core.JdbcTemplate$4.doInPreparedStatement(JdbcTemplate.java:989)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:644)
... 43 weitere
MyPojo hat einen Enumerationswert (Status). Es ist seltsam, weil die Enumerationszeichenfolge, die ich speichern möchte, „validiert“ und nicht „aced000...“ ist. Wenn ich JPA verwenden würde, würde ich @Enumerated(EnumType.STRING) für mein Statusfeld verwenden, aber gibt es so etwas auf spring-jdbc?
Grüße
Mobile version