반응형
jooq jsonArrayAgg 쿼리 mariadb/mysql은 항상 "SQL 구문의 오류" 예외를 받습니다.
SQL 문에 jsonArrayAgg 명령이 있는 경우 jOOQ는 항상 다음 오류를 발생시킵니다.
"SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 사용하기에 적합한 구문을 확인하십시오."
하지만 MariaDB에서 "general_log"를 켜고 jooq generate SQL 문을 복사/게시하여 데이터베이스를 쿼리하면 모든 것이 정상이며 결과는 제가 원하는 것입니다.
내 코드는 그냥.
list = ctx.select(
MAIN.KEYID,
field(
select(jsonArrayAgg(
jsonObject(
key("id").value(CONNECTOR.ID),
key("standard").value(CONNECTOR.STANDARD)
))).from(CONNECTOR)
.where(CONNECTOR.MAINKEYID.eq(MAIN.KEYID))).as("connectors")
).from(MAIN)
.fetchInto(JSON_POJO.class);
jooq log
at org.jooq_3.15.12.MARIADB.debug(Unknown Source) ~[?:?]
at org.jooq.impl.Tools.translate(Tools.java:2997) ~[jooq-3.15.12.jar:?]
at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:639) ~[jooq-3.15.12.jar:?]
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:354) ~[jooq-3.15.12.jar:?]
at org.jooq.impl.AbstractResultQuery.fetchLazy(AbstractResultQuery.java:295) ~[jooq-3.15.12.jar:?]
at org.jooq.impl.AbstractResultQuery.fetchLazyNonAutoClosing(AbstractResultQuery.java:316) ~[jooq-3.15.12.jar:?]
at org.jooq.impl.SelectImpl.fetchLazyNonAutoClosing(SelectImpl.java:2866) ~[jooq-3.15.12.jar:?]
at org.jooq.impl.ResultQueryTrait.collect(ResultQueryTrait.java:357) ~[jooq-3.15.12.jar:?]
at org.jooq.impl.ResultQueryTrait.fetchInto(ResultQueryTrait.java:1423) ~[jooq-3.15.12.jar:?]
jooq는 이렇게 간단하게 sql 코드를 생성합니다.
set @t = @@group_concat_max_len; set @@group_concat_max_len = 4294967295;
select `mydb`.`main`.`keyid`,
(select json_merge_preserve('[]', concat('[', group_concat(json_merge_preserve('{}', json_object('id', `mydb`.`Connector`.`id`), json_object('standard', `mydb`.`Connector`.`standard`)) separator ','), ']'))
from `mydb`.`Connector` where `mydb`.`Connector`.`mainKeyid` = `mydb`.`main`.`keyid`) as `connectors` from `mydb`.`main`;
set @@group_concat_max_len = @t
저는 3.12에서 3.16까지 jooq 버전을 시도해 보았습니다.
MariaDB 10.3 및 10.11로 업그레이드
Java 11.0.18
하지만 아무도 효과가 없었어요이 문제를 해결하거나 해결 방법을 찾을 수 있는 방법은 무엇입니까?
언급URL : https://stackoverflow.com/questions/76142850/jooq-jsonarrayagg-query-mariadb-mysql-always-get-an-error-in-your-sql-syntax-e
반응형
'programing' 카테고리의 다른 글
가져오기: 가져오기 응답을 사용하여 변수를 설정하고 함수에서 반환합니다. (0) | 2023.08.20 |
---|---|
SQL Server Management Studio를 사용하여 BLOB를 데이터베이스에 삽입하는 방법 (0) | 2023.08.20 |
에코에서 줄 바꿈 방지 (0) | 2023.08.20 |
jQuery를 사용하여 텍스트 영역 자동 확장 (0) | 2023.08.20 |
MySQL 워크벤치 대 phpMyAdmin (0) | 2023.07.31 |