Мой запрос выполняется нормально в окне sql:
select * from lstg where (transport #>>'{oneDriver}'):: boolean = true;
Как мы строим критерии с этим условием? Я попытался: // oneDriver - это логическое поле в поле модели типа jsonb // transport - это имя столбца jsonb, а oneDriver - это атрибут в нем
if (searchCriteria.getOneDriver() != null) {
predicates.add(cb.equal(
cb.function("jsonb_extract_path_text", Boolean.class,
root.get("transport"), cb.literal("oneDriver")),
searchCriteria.getOneDriver()));
}
При использовании этого сервиса выдается сообщение об ошибке:
Причина: org. postgresql .util.PSQLException: ОШИБКА: оператор не существует: text = логический Подсказка: ни один оператор не соответствует данному имени и типу (аргументам) аргумента. Возможно, вам понадобится добавить явные приведения типов.
Позиция: 1439
Как мы можем добавить приведение с использованием методов функций hibernate?