Postgres ошибка: оператор не существует: текст ~~ bigint - PullRequest
1 голос
/ 24 марта 2020

У меня есть следующий фрагмент для создания запроса:

predicate.add(criteriaBuilder.like(map.get("value"), variable.get("value")));

variable.get("value") возвращает String, а map.get("value") возвращает Expression<String>.

Сгенерированный запрос выглядит как следующий фрагмент:

where variables.VARIABLE_VALUE like $2

Журналы базы данных показывают следующую ошибку (символ 1570 соответствует аналогичному выражению выше):

ОШИБКА: оператор не существует: текст ~~ bigint в символе 1570

СОВЕТ: ни один оператор не соответствует заданному имени и типу аргумента. Вам может потребоваться добавить явные приведения типов.

VARIABLE_VALUE имеет тип text в базе данных, и данный параметр $2 должен быть String, а не BIGINT.

Не знаю, почему выход variable.get("value") преобразуется в BIGINT вместо String.

Настройки:

База данных: Postgres 12.2

Hibernate Dialect: PostgreSQL94Dialect

Драйвер postgresql -42.2.11.jar

Версия Hibernate: hibernate-jpa-2.1-api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...