gpt4 book ai didi

java - JPA 生成的 SQL 为 "fetch first ? rows only"失败,在 Oracle 11g 中出现 ORA-00933

转载 作者:行者123 更新时间:2023-12-02 09:08:19 25 4
gpt4 key购买 nike

在 Spring Boot 2.0 项目中,我有一个带有查询方法的 JpaRepository 对象。一种查询方法返回分页结果集。

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

此 JPA 查询方法在查询 Oracle 12c 数据库时运行,使用以下 SQL:

select * from (SQL)  where rownum <= 100

在查询 Oracle 11g 数据库时,相同的 JPA 查询方法会失败并显示 (ORA-00933),并生成以下 SQL:

select SQL **fetch first 100 rows only**

为什么相同的代码库为不同的 Oracle 数据库生成不同的 SQL?我们该如何解决这个问题?

该项目使用 ojdbc6(版本 - 11.2.0.4)Oracle 驱动程序。

最佳答案

问题是由方言引起的。我一开始使用了一种较旧的方言 - “org.hibernate.dialect.Oracle9iDialect”

通过在 application.properties 中设置以下方言解决了该问题。

spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect

关于java - JPA 生成的 SQL 为 "fetch first ? rows only"失败,在 Oracle 11g 中出现 ORA-00933,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59619747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com