【问题标题】:Parse a SELECT query and get the JOINS with JOOQ解析 SELECT 查询并使用 JOOQ 获取 JOINS
【发布时间】:2021-07-22 00:14:04
【问题描述】:

使用 JOOQ,是否可以解析 SQL 查询,然后获取查询的部分?字段、From、Join、Where... 类似的东西:

String sql = "SELECT x.a, x.b, y.c
FROM my_table x
LEFT JOIN other_table y
   on x.a = y.a
WHERE x.a > 1000";

SelectQuery<Record> query = (SelectQuery<Record>) context.parser().parseSelect(sql);
query.getFrom();
query.getFields();
query.getJoins();
query.getWhere();
...

【问题讨论】:

    标签: java jooq


    【解决方案1】:

    使用 jOOQ 3.15,您无法访问 jOOQ 表达式树的内部。有一个大型项目正在重新设计这些内部结构,以使它们能够针对这个用例精确地公开访问:

    在此之前,您需要通过使用反射来解决这个问题,在 org.jooq.impl 包中放置一些逻辑以访问类路径上的包私有内部(在模块路径上不可能),或者通过修补 jOOQ - 每个风险自负。

    【讨论】:

      猜你喜欢
      • 2012-11-13
      • 2021-06-12
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 2016-02-07
      • 1970-01-01
      相关资源
      最近更新 更多