Hibernate 6 – невозможно создать временную ошибку таблицы при выполнении функции «объединения» ⇐ JAVA
-
Anonymous
Hibernate 6 – невозможно создать временную ошибку таблицы при выполнении функции «объединения»
Я занимаюсь переносом унаследованного приложения с Springboot 2.7 и Hibernate 5 на Springboot 3 и Hibernate 6, но столкнулся с некоторыми проблемами при работе в режиме гибернации. В настоящее время я получаю следующую ошибку при запуске query.getResultList():
... [Невозможно создать временную таблицу, поскольку нет доступного системного временного табличного пространства с совместимым размером страницы. SQLCODE=-1585, SQLSTATE=54048, DRIVER=4.19.77]
Я сузил проблему до утверждения, что она используется для сортировки:
окончательный SortPropertiesResolver sortResolver = новый SortPropertiesResolver.Builder() .addMapping("displayTitle", "LOWER(COALESCE(dna.value, p.name))") .строить(); Окончательный запрос выглядит примерно так:
FROM Profile$Active p LEFT JOIN FETCH p.displayNameAttribute dna WHERE p.client.id = :clientId упорядочить по НИЖНЕМУ(COALESCE(dna.value, p.name)) по возрастанию Если я удалю функцию coalesce, через которую она выполняется, но с ней, она просто завершится с ошибкой. Я проверял документацию и руководство по миграции, и единственное, что упоминается о временных таблицах, — это стратегия массовых операций, и я не смог заставить ее работать, используя ни одну из стратегий. Некоторые даже не разрешали запуск приложения, потому что их конструктор не был совместим с моей конфигурацией, которая передает конструктору только диалект.
Стоит отметить, что этот запрос предназначен для экземпляра db2.
Я не являюсь экспертом по спящему режиму и не близок к этому, и надеюсь, что некоторым людям здесь не хватает чего-то очевидного. Если бы кто-нибудь мог указать мне правильное направление, я был бы очень благодарен.
Я занимаюсь переносом унаследованного приложения с Springboot 2.7 и Hibernate 5 на Springboot 3 и Hibernate 6, но столкнулся с некоторыми проблемами при работе в режиме гибернации. В настоящее время я получаю следующую ошибку при запуске query.getResultList():
... [Невозможно создать временную таблицу, поскольку нет доступного системного временного табличного пространства с совместимым размером страницы. SQLCODE=-1585, SQLSTATE=54048, DRIVER=4.19.77]
Я сузил проблему до утверждения, что она используется для сортировки:
окончательный SortPropertiesResolver sortResolver = новый SortPropertiesResolver.Builder() .addMapping("displayTitle", "LOWER(COALESCE(dna.value, p.name))") .строить(); Окончательный запрос выглядит примерно так:
FROM Profile$Active p LEFT JOIN FETCH p.displayNameAttribute dna WHERE p.client.id = :clientId упорядочить по НИЖНЕМУ(COALESCE(dna.value, p.name)) по возрастанию Если я удалю функцию coalesce, через которую она выполняется, но с ней, она просто завершится с ошибкой. Я проверял документацию и руководство по миграции, и единственное, что упоминается о временных таблицах, — это стратегия массовых операций, и я не смог заставить ее работать, используя ни одну из стратегий. Некоторые даже не разрешали запуск приложения, потому что их конструктор не был совместим с моей конфигурацией, которая передает конструктору только диалект.
Стоит отметить, что этот запрос предназначен для экземпляра db2.
Я не являюсь экспертом по спящему режиму и не близок к этому, и надеюсь, что некоторым людям здесь не хватает чего-то очевидного. Если бы кто-нибудь мог указать мне правильное направление, я был бы очень благодарен.
Мобильная версия