IN collection clause doesn't work
pillowbalcony opened this issue · 1 comments
pillowbalcony commented
Hi, I'm working on a sql using operator IN:
Mono<List<Map<String, Object>>> result = databaseClient.sql("select * from users where id in (?)")
.bind(0, new Integer[] {1, 2, 3})
.map(this::mapRowData)
.all()
.collectList();
However it gets an error during execution:
java.lang.IllegalArgumentException: Cannot encode value of type 'class [Ljava.lang.Integer;'
at dev.miku.r2dbc.mysql.codec.DefaultCodecs.encode(DefaultCodecs.java:178)
at dev.miku.r2dbc.mysql.ParametrizedStatementSupport.bind(ParametrizedStatementSupport.java:72)
at dev.miku.r2dbc.mysql.ParametrizedStatementSupport.bind(ParametrizedStatementSupport.java:39)
at org.springframework.r2dbc.core.DefaultDatabaseClient$DefaultGenericExecuteSpec.lambda$bindByIndex$6(DefaultDatabaseClient.java:442)
...
rest omitted
I checked the whole codec list and can not find a codec supporting this clause.
subrata71 commented
Queries with IN
clauses are widely used. It's time MySQL r2dbc driver had support for this.