【发布时间】:2019-09-12 13:56:00
【问题描述】:
假设以下函数声明:
FUNCTION ARTTEXTJN
(p_art_id in number
,p_arttextart in varchar2 default 'basis'
,p_sprache in varchar2 default null
,p_aufart in number default null
,p_fallback_arttextart in varchar2 default 'J'
)
RETURN VARCHAR2
期望第一个参数所有参数都有一个默认值。
jOOQ 生成一个这样的包方法:
public static Field<String> arttextjn(Field<? extends Number> pArtId, Field<String> pArttextart,
Field<String> pSprache, Field<? extends Number> pAufart, Field<String> pFallbackArttextart) {
Arttextjn f = new Arttextjn();
f.setPArtId(pArtId);
f.setPArttextart(pArttextart);
f.setPSprache(pSprache);
f.setPAufart(pAufart);
f.setPFallbackArttextart(pFallbackArttextart);
return f.asField();
}
如果我想在查询中使用它,我必须将 null 传递给函数:
dsl.select(KAMPARTIKEL.ARTNR, KAMPARTIKEL.ARTNRKAMP,
PaBez.arttextjn(KAMPARTIKEL.ART_ID, null, null, null, null))
但是 Oracle 不使用默认值。
有没有办法告诉 jOOQ 生成具有所有可能组合的重载方法?否则我无法在 select 子句中使用该函数。
【问题讨论】: