如何在 JOOQ 中公开新的 SQL 函数
Posted
技术标签:
【中文标题】如何在 JOOQ 中公开新的 SQL 函数【英文标题】:How to expose new SQL function in JOOQ 【发布时间】:2020-06-25 08:48:10 【问题描述】:我想使用REGEXP_REPLACE
sql 函数(我的目标是Postgres),但是在快速检查了JOOQ 中的DSL
类之后,它似乎还没有暴露出来。
我应该如何处理添加新功能的问题?
我可以尝试扩展AbstractFunction
,类似于org.jooq.impl.Replace
有没有更通用的方法来调用 JOOQ 的 DSL 未公开的函数?
【问题讨论】:
【参考方案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)
);
【讨论】:
以上是关于如何在 JOOQ 中公开新的 SQL 函数的主要内容,如果未能解决你的问题,请参考以下文章