Thank you very much for your report. I suspect that the AIOOBE is caused by your usage of double quotes to delimit string literals, which I believe is not common practice even in MySQL (it's not even supported in most other databases). You should use apostrophes / single quotes to delimit string literals. All the examples from your linked documentation page use single quotes as well.
Anyway, I have created an issue for this: https://github.com/jOOQ/jOOQ/issues/7706 The AIOOBE is not a nice way to handle this, there should be a better error message. Am Di., 24. Juli 2018 um 16:47 Uhr schrieb <[email protected]>: > JOOQ version: 3.8.6 > MySQL version: 5.7.22 > > Hi > I'm trying to write query, which uses MySQL JSON data type. > But, unfortunately, one of my key contains whitespace. The specification > <https://dev.mysql.com/doc/refman/8.0/en/json.html> says > >> >> - >> >> The key name must be specified within double quotation marks if the >> name without quotes is not legal within path expressions (for example, if >> it contains a space). >> >> > This is my query, which works fine in MySQL console: > SELECT .... WHERE JSON_EXTRACT(DATA, "$.elements.""key with space""") = "some > value"; > > But when I try to write it in JOOQ (only condition part for readability) > Condition c = DSL.condition("JSON_EXTRACT(DATA, \"$.elements.\"\"key with > space\"\"\") = ?", someValue); > > System.out.println(c); > > > I get the following error: > java.lang.ArrayIndexOutOfBoundsException: 59 > at org.jooq.impl.Tools.renderAndBind(Tools.java:1614) ~[jooq-3.8.6.jar:na > ] > at org.jooq.impl.SQLImpl.accept(SQLImpl.java:69) ~[jooq-3.8.6.jar:na] > at org.jooq.impl.DefaultRenderContext.visit0(DefaultRenderContext.java: > 396) ~[jooq-3.8.6.jar:na] > at org.jooq.impl.AbstractContext.visit0(AbstractContext.java:394) ~[jooq- > 3.8.6.jar:na] > at org.jooq.impl.AbstractContext.visit(AbstractContext.java:159) ~[jooq- > 3.8.6.jar:na] > at org.jooq.impl.SQLCondition.accept(SQLCondition.java:69) ~[jooq-3.8. > 6.jar:na] > at org.jooq.impl.DefaultRenderContext.visit0(DefaultRenderContext.java: > 396) ~[jooq-3.8.6.jar:na] > at org.jooq.impl.AbstractContext.visit0(AbstractContext.java:394) ~[jooq- > 3.8.6.jar:na] > at org.jooq.impl.AbstractContext.visit(AbstractContext.java:159) ~[jooq- > 3.8.6.jar:na] > at org.jooq.impl.DefaultDSLContext.renderInlined(DefaultDSLContext.java: > 525) ~[jooq-3.8.6.jar:na] > at org.jooq.impl.AbstractQueryPart.toString(AbstractQueryPart.java:169) > ~[jooq-3.8.6.jar:na] > at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_162] > at java.io.PrintStream.println(PrintStream.java:821) ~[na:1.8.0_162] > > > I reckon the problem is with quotation marks, because when I use a key > without space (and without escaping with quotation marks) the query works > fine. > Any way to solve this? > > Thanks > > -- > You received this message because you are subscribed to the Google Groups > "jOOQ User Group" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "jOOQ User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
