Предположим следующее объявление функции:
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.