如何在JOOQ中公开新的SQL函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在JOOQ中公开新的SQL函数相关的知识,希望对你有一定的参考价值。

我想使用REGEXP_REPLACE sql函数(我的目标是Postgres,但是在对JOOQ中的DSL类进行快速检查之后,似乎还没有公开。

我应该如何解决添加新功能的问题?

  • 我可以尝试扩展AbstractFunction,类似于org.jooq.impl.Replace
  • 还有没有其他更通用的方法来调用JOOQ的DSL未公开的功能?
答案

使用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)
    );

以上是关于如何在JOOQ中公开新的SQL函数的主要内容,如果未能解决你的问题,请参考以下文章