Я использую Postgres: 9.5.5 и Spring-Jdbc: 4.3.7.
Мой выбор в postgres выглядит так:
select id, birth_date, fullname from some_table where fullname ~ '\mSTACK\M'
Что вернет true, если полное имя содержит слово «STACK».
У меня проблема с генерацией этого запроса в Java (8) с использованием NamedJdbcTemplate:
String sql = "select id, fullname, birth_date from some_table where fullname ~ '\m:name\M' and birth_date = :birth_date";
SqlParameterSource params = new MapSqlParameterSource()
.addValue("name", "STACK")
.addValue("birth_date", "22.07.2002");
namedJdbcTemplate.query(sql, params, ....);
Результирующий SQL, сгенерированный JDBC:
SELECT id, fullname, birth_date FROM some_table WHERE fullname ~ '\m:name\M' AND birth_date = ?;
Как видите, с параметром birth_date проблем нет,
но JDBC не поставил "?" символ вместо параметра ": name".
Как мне объяснить JDBC, что мой параметр ": name" окружен регулярным выражением?
Спасибо!