首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jooq时出现未知列sql错误

问使用jooq时出现未知列sql错误
EN

Stack Overflow用户
提问于 2022-05-01 15:18:44
回答 1查看 264关注 0票数 2

查询:

代码语言:javascript
复制
this.dslContext.select(
            ROLE.asterisk(),
            multiset(
                select(PERMISSION.asterisk())
                    .from(ROLE_PERMISSION)
                    .innerJoin(PERMISSION)
                    .on(ROLE_PERMISSION.PERMISSION_ID.eq(PERMISSION.ID))
                    .where(ROLE_PERMISSION.ROLE_ID.eq(ROLE.ID))
            ).as("permissions")
        ).from(ROLE)
            .where(ROLE.ID.eq(id))
            .fetchOneInto(Role.class)

错误:

代码语言:javascript
复制
jOOQ; bad SQL grammar [set @t = @@group_concat_max_len; set @@group_concat_max_len = 4294967295; select `users`.`role`.*, (select coalesce(json_merge_preserve('[]', concat('[', group_concat(json_array(`v0`, `v1`) separator ','), ']')), json_array()) from (select `users`.`permission`.`id` as `v0`, `users`.`permission`.`name` as `v1` from `users`.`role_permission` join `users`.`permission` on `users`.`role_permission`.`permission_id` = `users`.`permission`.`id` where `users`.`role_permission`.`role_id` = `users`.`role`.`id`) as `t`) as `permissions` from `users`.`role` where `users`.`role`.`id` = ?; set @@group_concat_max_len = @t;]; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'users.role.id' in 'where clause'.

数据库: MYSQL,数据库名称:“用户”,JOOQ版本: 3.16.6

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-06 13:55:04

在MySQL 5.7中不支持关联派生表。仅在MySQL 8.0.14:https://dev.mysql.com/doc/refman/8.0/en/derived-tables.html中添加了支持

jOOQ目前无法绕过这一限制,请参阅:https://github.com/jOOQ/jOOQ/issues/12045

解决办法要么是:

  • 升级您的MySQL版本
  • 使用基于MULTISET_AGG的方法而不是
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72077992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档