Closed
Description
Hello
When use Oracle DB The JdbcClient.update(KeyHolder)
method not work with named parameters
Example:
jdbcClient.sql(insert_sql)
.paramSource(objectModel)
.update(keyHolder);
var id = keyHolder.getKey();
and throw
org.springframework.dao.DataRetrievalFailureException: The generated key type is not supported. Unable to cast [oracle.sql.ROWID] to [java.lang.Number].
at org.springframework.jdbc.support.GeneratedKeyHolder.getKeyAs(GeneratedKeyHolder.java:86) ~[spring-jdbc-6.1.0-RC2.jar:6.1.0-RC2]
at org.springframework.jdbc.support.GeneratedKeyHolder.getKey(GeneratedKeyHolder.java:65) ~[spring-jdbc-6.1.0-RC2.jar:6.1.0-RC2]
and when use NamedParameterJdbcOperations
as workaround, it works
namedParameterJdbcOperations.update(
insert_sql, new SimplePropertySqlParameterSource(objectModel), keyHolder, new String[] {"id"}
);