【问题标题】:How to expose new SQL function in JOOQ如何在 JOOQ 中公开新的 SQL 函数
【发布时间】:2020-06-25 08:48:10
【问题描述】:

我想使用REGEXP_REPLACE sql 函数(我的目标是Postgres),但是在快速检查了JOOQ 中的DSL 类之后,它似乎还没有暴露出来。

我应该如何处理添加新功能的问题?

  • 我可以尝试扩展AbstractFunction,类似于org.jooq.impl.Replace
  • 有没有更通用的方法来调用 JOOQ 的 DSL 未公开的函数?

【问题讨论】:

    标签: java sql jooq


    【解决方案1】:

    The REGEXP_REPLACE function has been supported since jOOQ 3.14。在旧版本的 jOOQ 中,当您错过功能时,请使用 plain SQL templating

    public static Field<String> regexpReplace(
        Field<String> in, String pattern, String replacement
    ) {
        return DSL.field(
            "regexp_replace({0}, {1}, {2})", in.getDataType(), 
            in, 
            DSL.val(pattern), 
            DSL.val(replacement)
        );
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2013-11-20
      • 1970-01-01
      • 2020-09-25
      • 2019-07-08
      • 2020-10-02
      相关资源
      最近更新 更多