CAST все элементы данных UUID в запросе CTE - PullRequest
0 голосов
/ 28 января 2020

Мне нужно привести все UUID, которые есть в моей сущности, в запрос CTE, в основном я ищу возможный метод CAST-ALL, так как мне нужно получить все содержимое таблицы.

WITH RECURSIVE parentTypes AS (
            SELECT id, parent_type_id FROM type a
            WHERE
            a.id = :id
            UNION
            SELECT at.id, at.parent_type_id FROM type at
            INNER JOIN parentTypes pt ON pt.parent_type_id = at.id
            ) SELECT b.*, f.label as filter_labels FROM type b
            LEFT OUTER JOIN filter_label f ON b.id = f.id
            WHERE b.id IN (SELECT id from parentTypes)
            AND b.company_id = :companyId;

Приведенный выше результат приводит к выполнению в виде собственного запроса:

"Нет сопоставления диалектов для типа JDB C: 1111; вложенное исключение - org.hibernate.MappingException : Нет сопоставления диалектов для типа JDB C: 1111 "

Нижеприведенный модифицированный запрос с отдельными идентификаторами работает нормально, но не справляется с целью извлечения всех данных.

WITH RECURSIVE parentTypes AS (
            SELECT id, parent_type_id FROM type a
            WHERE
            a.id = :id
            UNION
            SELECT at.id, at.parent_type_id FROM type at
            INNER JOIN parentTypes pt ON pt.parent_type_id = at.id
            ) SELECT 
            CAST(b.id AS VARCHAR(48)), 
            CAST(b.class_id AS VARCHAR(48),
            CAST(b.company_id AS VARCHAR(48)),
            CAST(b.parent_type_id AS VARCHAR(48)),
            f.label as filter_labels FROM type b
            LEFT OUTER JOIN filter_label f ON b.id = f.id
            WHERE b.id IN (SELECT id from parentTypes)
            AND b.company_id = :companyId;

Есть ли способ достичь этого?

ps: для ошибки без диалекта я пробовал эти решения, но ни одно из них не помогло:

  • spring.jpa.database-platform: org .hibernate.dialect.PostgreSQLDialect
  • spring.jpa.properties.hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect
  • Установка аннотации @Type (type = "pg-uuid") для каждого Идентификатор
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...