【发布时间】:2020-06-25 08:48:10
【问题描述】:
我想使用REGEXP_REPLACE sql 函数(我的目标是Postgres),但是在快速检查了JOOQ 中的DSL 类之后,它似乎还没有暴露出来。
我应该如何处理添加新功能的问题?
- 我可以尝试扩展
AbstractFunction,类似于org.jooq.impl.Replace - 有没有更通用的方法来调用 JOOQ 的 DSL 未公开的函数?
【问题讨论】:
我想使用REGEXP_REPLACE sql 函数(我的目标是Postgres),但是在快速检查了JOOQ 中的DSL 类之后,它似乎还没有暴露出来。
我应该如何处理添加新功能的问题?
AbstractFunction,类似于org.jooq.impl.Replace
【问题讨论】:
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)
);
}
【讨论】: