Как стать автором
Обновить

Комментарии 4

>Проблемы будут ждать нас, когда мы захотим передать заранее неизвестное количество аргументов
А в чем проблема?
… приведет к необходимости склейки/разбора запроса для каждого варианта от количества аргументов.

JDBC позволяет работать с массивами нативно, и не нужно городить огород с сериализацией и временными таблицами.
https://jdbc.postgresql.org/documentation/head/arrays.html


Spring также поддерживает это и с JdbcTemplate и с JPA. Напоминаю, что для получения текущего коннекта в Spring нужно использовать DataSourceUtils. См исходный код для понимания того, как именно это нужно делать.


Кстати для JPA, если вы хотите хранить массивы Java в таблице как есть, используя нативные типы Postgres, то можно не тратить время на написание TypeDescriptor-ов самому, а просто взять готовую библиотеку от славного Vlad Mihalcea, использование которой он описал тут: https://vladmihalcea.com/how-to-map-java-and-sql-arrays-with-jpa-and-hibernate/

… id = ANY($1::integer[]) — $1: '{2,3,5,8,13}'

Спасибо, вам, добрый человек. Сижу переписываю с ужасных конкатинаций в простейший код вида:
db.Query("select name where id=ANY($1::integer[])", pq.Array(ids))
Зарегистрируйтесь на Хабре , чтобы оставить комментарий