Org.hibernate.MappingException: нет сопоставления диалектов для типа JDBC: 1111 при запросе с помощью `json_agg`JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Org.hibernate.MappingException: нет сопоставления диалектов для типа JDBC: 1111 при запросе с помощью `json_agg`

Сообщение Anonymous »

Когда я пытаюсь запустить собственный запрос jpql, я каждый раз получаю эту ошибку, я использую это,

Код: Выделить всё

     @Query(value = "select nd.activity, coalesce(json_agg(nd.channel), '[]') as channels, nd.description  from" +
" notification_detail nd where nd.activity = :activity group by nd.activity, nd.description, nd.channel",
nativeQuery = true)
List fetchAllNotificationOn(String activity);

Я подозреваю, что проблема с json_agg, хотя я использую Postgres 14. Я чувствую, что это должно работать, но я не получаю ошибки.

Код: Выделить всё

[2024-08-04 16:54:13] [ERROR]   [http-nio-9090-exec-1] [o.a.c.c.C.[.[.[/].[dispatcherServlet]   (175)] >> Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: No Dialect mapping for JDBC type: 1111; nested exception is org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111] with root cause
org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111
Вот мой интерфейс, который он возвращает

Код: Выделить всё

public interface NotificationListDto {
String getActivity() ;
JsonNode getChannels();
String getDescription();

}

Когда я пытаюсь удалить json_agg, все работает отлично,

Код: Выделить всё

    @Query(value = "select nd.activity,  nd.description  from" +
" notification_detail nd where nd.activity = :activity group by nd.activity, nd.description, nd.channel",
nativeQuery = true)
List fetchAllNotificationOn(String activity);

Думаю, есть какие-то другие способы или какая проблема, с которой я столкнулся, если json_agg не работает.
Спасибо за вашу помощь.
Изменить:
У меня есть временное решение

Код: Выделить всё

SELECT nd.activity, COALESCE(string_agg(nd.channel, ', '), '') AS channels, nd.description FROM notification_detail nd GROUP BY nd.activity, nd.description;
В котором я бы получал данные о каналах таким образом Что-то, что-то1 но мне снова приходится делать разделение и другие вещи, чего я не хочу делать.
В этом случае я получаю данные о каналах таким образом. Что-то, что-то1 но мне снова приходится делать разделение и другие вещи, чего я не хочу делать.
При этом я получаю данные о каналах таким образом. Что-то, что-то1 но мне снова приходится делать разделение и другие вещи, которые я не хочу делать.
п>

Подробнее здесь: https://stackoverflow.com/questions/788 ... -when-quer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»