spring R2DB C запрос по типу перечисления - PullRequest
2 голосов
/ 27 мая 2020

My PostgreSQL содержит перечисление типа

create type my_type as enum('VAL1', 'VAL2')

в приложении загрузки Spring, оно представлено MyType.class enum

Я пытаюсь запустить простой запрос, используя DatabasClient

client.exectute("select * from table where type = :type")...

Я получаю сообщение об ошибке:

ceptionFactory$PostgresqlBadGrammarException: operator does not exist: type = character varying

Тип преобразования в my_type не работает (как с CAST, так и с ::)

Я уже зарегистрировал специальный c код c для MyType.class, который работает - запрос всех без условий работает с соответствующими @ReadingConverter

1 Ответ

1 голос
/ 28 мая 2020

Ни Spring Data R2DB C, ни R2DB C Postgres не могут сопоставить ваш тип перечисления с типами Postgres перечисления.

Вы все равно можете использовать типы перечисления Postgres, представленные в виде строк, если вы правильно приведите значение привязки / значение столбца при извлечении в оператор SQL.

Пример:

client.exectute("select type::text from table where type = :type::my_type")
...