JDBC-клиент Vertx queryWithParams - как добавить список? - PullRequest
0 голосов
/ 10 июля 2019

У меня SQL-запрос с условием currency in ? и я использую метод queryWithparams клиента JDBC vertx, который получает параметры запроса в JsonArray.

Как передать свой список возможных значений currency на запрос? Я пытался new JsonArray().add(new JsonArray(currencies), но получил исключение

org.postgresql.util.PSQLException: Невозможно определить тип SQL для использования для экземпляра io.vertx.core.json.JsonArray. Используйте setObject () с явным значением Types, чтобы указать используемый тип.

1 Ответ

0 голосов
/ 11 июля 2019

Есть два варианта.

Если вы хотите поддерживать несколько баз данных, вам придется расширить свое выражение самостоятельно:

"... currency IN (" + String.join(",", Collections.nCopies(currencies.size(), "?")) + ")"

Если вы поддерживаете только PostreSQL, вы можете использоватьANY оператор вместо:

WHERE currency = ANY(?)
...