Мне нужно привести все 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") для каждого Идентификатор