JPA, сгенерированный SQL с "извлекать только первые строки", завершается неудачно с ORA-00933 в Oracle 11g - PullRequest
0 голосов
/ 07 января 2020

В проекте Spring Boot 2.0 у меня есть объект JpaRepository с методами запросов. Один метод запроса возвращает разбитый на страницы набор результатов.

Page<Model> findByPartContainingIgnoreCaseAndModelContainingIgnoreCaseAndNeedsUpdateContainingIgnoreCase(String part, String model, String needsUpdate, Pageable pageReguest);

Этот метод запроса JPA выполняется при запросе к базе данных Oracle 12 c со следующей SQL:

select * from (SQL)  where rownum <= 100

При запросе к базе данных Oracle 11g тот же метод запроса JPA завершается с ошибкой (ORA-00933), при этом генерируется следующее SQL:

select SQL **fetch first 100 rows only**

Почему одна и та же база кода генерирует разные SQL для разных Oracle базы данных? Как мы можем это исправить?

В проекте используется драйвер ojdbc6 (версия - 11.2.0.4) Oracle.

1 Ответ

1 голос
/ 07 января 2020

Проблема была из-за диалекта. Сначала я использовал более старый диалект - "org.hibernate.dialect.Oracle9iDialect"

Проблема была решена путем установки следующего диалекта в application.properties.

spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...