Мое подготовленное утверждение выглядит так:
SELECT m1.id, m1.text
FROM message m1 WHERE m1.tags ??& ?
Где tags - это тип jsonb. Вот как я заполняю свои параметры:
List<Object> queryParameters = new ArrayList<>();
JDBCArrayBasic jdbcTagsArray = new JDBCArrayBasic(
tagIds, org.hsqldb.types.Type.SQL_VARCHAR_DEFAULT);
queryParameters.add(new String[]{"tag1", "tag2"});
return jdbcTemplate.query(statementBuilder.build(), queryParameters.toArray(),
rowMapper);
К сожалению, это не с этой ошибкой: Вызывается: org. postgresql .util.PSQLException: ОШИБКА: литерал некорректного массива: "ARRAY [' 123 '] "Detail: значение массива должно начинаться с" {"или информации о размерах.
Я попытался преобразовать параметр в подготовленном выражении в jsonb:
SELECT m1.id, m1.text
FROM message m1 WHERE m1.tags ??& ?::jsonb
Но Получил: Вызвано: org. postgresql .util.PSQLException: ОШИБКА: невозможно привести символ типа, изменяющийся [] к jsonb ошибка.
Любая идея, как заставить его работать, пока еще используя подготовленный оператор JdbcTemplate?