如何在 JOOQ 中公开新的 SQL 函数
How to expose new SQL function in JOOQ
我想使用 REGEXP_REPLACE
sql 函数(我的目标是 Postgres),但是在快速检查 JOOQ 中的 DSL
class 之后,它似乎是还没曝光
我应该如何处理添加新功能的问题?
- 我可以尝试扩展
AbstractFunction
,类似于 org.jooq.impl.Replace
- 是否有更通用的方法来调用 JOOQ 的 DSL 未公开的函数?
The REGEXP_REPLACE
function has been supported since jOOQ 3.14. In older versions of jOOQ, as always when you're missing out on functionality, use 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)
);
}
我想使用 REGEXP_REPLACE
sql 函数(我的目标是 Postgres),但是在快速检查 JOOQ 中的 DSL
class 之后,它似乎是还没曝光
我应该如何处理添加新功能的问题?
- 我可以尝试扩展
AbstractFunction
,类似于org.jooq.impl.Replace
- 是否有更通用的方法来调用 JOOQ 的 DSL 未公开的函数?
The REGEXP_REPLACE
function has been supported since jOOQ 3.14. In older versions of jOOQ, as always when you're missing out on functionality, use 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)
);
}