#java #spring #postgresql #spring-jdbc #bytea
Вопрос:
У меня есть такой столик
create table tabl(id bytea, val text);
amp; запрос, подобный этому
select * from tabl where id='foo';
когда я выполняю этот запрос в PSQL или pgAdmin, он работает
но когда тот же запрос выполняется Spring JdbcTemplate, он создает исключение
exception is org.postgresql.util.PSQLException: ERROR: operator does not exist: bytea = character varying
Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Код Java выглядит следующим образом:
jdbcTemplate.queryForObject("select val from tabl where id=?", new Object[] {id}, String.class)
хотя я знаю, что могу исправить это с помощью decode
функции
jdbcTemplate.queryForObject("select val from tabl where id=decode(?,'escape')", new Object[] {id}, String.class)
Похоже, что Postgres автоматически передает текст в bytea для сравнения, но зачем создавать исключение с spring jdbc?
Спасибо