это код запроса.
@Query(value = "select * from lb.relationship where serverid=?1 and serviceid=?2 and port=?3", nativeQuery = true)
VipServiceToServerRelationship findByServerIdAndServiceIdAndPort(UUID svrId, UUID svcId, String port);
это схема.
CREATE TABLE lb.relationship (
id uuid NOT NULL,
serverid uuid NOT NULL,
serviceid uuid NOT NULL,
port character varying NOT NULL
);
Я пробую команду ниже непосредственно в консоли pg и получаю правильный ответ
select * from lb.relationship where serverid=('d5dd2a02-960b-4c7b-ad9c-92e3650ab763'::uuid) and serviceid=('83265e81-7e14-4ff0-a4cc-6228a0d25f0d'::uuid) and port='80'
or
select * from lb.relationship where serverid='d5dd2a02-960b-4c7b-ad9c-92e3650ab763' and serviceid='83265e81-7e14-4ff0-a4cc-6228a0d25f0d' and port='80'
Сообщение об ошибке:
оператор не существует: uuid = bytea
Из ответа на другие похожие вопросы я все еще не могу выяснить мою неудачу. У меня нет лишних "" или ";" в моем sql.
Обновление
Я пытаюсь запустить Springdata напрямую, которые получают ту же ошибку.
* * Вызывается: org. postgresql .util.PSQLException: ОШИБКА: оператор не существует: uuid = bytea Подсказка: ни один оператор не соответствует данному имени и типу (аргументам) аргумента. Возможно, вам придется добавить явные приведения типов. **
- hours 12 часов go
Решение
Как только я изменю схему с uuid на строка, все исправлено
- hours 11 часов go