Spring jpa запрос where предложение с сопоставлением типов enum - PullRequest
0 голосов
/ 20 марта 2019

Я использую spring-data-jpa для реляционного сопоставления объектов с пружинной загрузкой и postgreSql, и написал собственный метод для получения различимого значения столбца task_id при совпадении с условием

@Query(value = "select distinct task_id from schema_task_test.test_table where type =:type", nativeQuery = true)
public List<Integer> findDistinctTasks(@Param("type") String type);

Но в базе данных type имеет тип Enum, поэтому я получаю исполнение

Error

[ERROR] 2019-03-19 16:33:45,006 http-nio-8080-exec-1 org.hibernate.engine.jdbc.spi.SqlExceptionHelper - {} - ERROR: operator does not exist: schema_task_test.type_enum = character varying

Hint: No operator matches the given name and argument types. You might need to add explicit type casts.

1 Ответ

0 голосов
/ 18 июня 2019

В собственном запросе вы должны привести явное к типу перечисления базы данных.

@ Query (value = "выбрать отдельный идентификатор задачи из schema_task_test.test_table где type = cast (: type as type)", nativeQuery = true)

Вы также должны использовать @Enumerated в сущности.

Если вы хотите сохранить значения в виде строки, вы можете использовать @Enumerated (EnumType.STRING)

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