Могу ли я использовать именованные параметры с jOOQ SQL executor? - PullRequest
0 голосов
/ 11 мая 2018

Я использую jOOQ для выполнения произвольных запросов SQL.Я делаю это следующим образом:

String result = create.fetchSingle("SELECT ...").getValue(0, String.class);

Этот запрос всегда возвращает одну строку и один столбец, следовательно, используются fetchSingle и getValue(0, T).Я не смог найти метод, который объединяет два.

Теперь я хочу передать именованный параметр в этот запрос.Параметр используется в нескольких местах, поэтому я подумал, что использование именованного параметра было бы хорошим использованием здесь.Тип этого параметра - массив строк.

Как я могу это сделать?Как мне обратиться к этому параметру в запросе?В JDBC я бы написал :name_of_parameter::text[].

1 Ответ

0 голосов
/ 11 мая 2018

API, который вы ищете, это DSLContext.fetchSingle(String, Object...), который принимает строку SQL с заполнителями параметров, а также фактические привязки.

Однако он не поддерживает именованные параметры, только индексированные параметры, поэтому вам придется повторить значение несколько раз, например

create.fetchSingle("SELECT 'a' WHERE ?::text[] = ?::text[]", value, value)
      .getValue(0, String.class);
...