我正在尝试在 Spring boot 应用程序中使用分页并使用 Oracle11g,但它给了我以下错误。
Caused by: org.hibernate.exception.SQLGrammarException: JDBC exception executing SQL [select au1_0.user_id,au1_0.created_on,au1_0.created_by,au1_0.email,au1_0.first_name,au1_0.last_login_date,au1_0.last_name,au1_0.msisdn,au1_0.password,au1_0.security_code,au1_0.status from user au1_0 offset ? rows fetch first ? rows only] [ORA-00933: SQL command not properly ended.
请帮助我,因为我是 Spring boot 的新手。预先感谢您。
我正在尝试在 Spring boot 应用程序中使用分页并使用 Oracle11g
控制器
PageRequest pageRequest = PageRequest.of(0, 1);
Page<AdminUser> auList = adminUserService.getAllUsers(pageRequest);
服务
public Page<AdminUser> getAllUsers(Pageable pageable);
服务实现
@Override
public Page<AdminUser> getAllUsers(Pageable pageable) {
return adminUserRepository.findAll(pageable);
}
Oracle 11g 不支持语法
offset ? rows fetch first ? rows only
;这是在 Oracle 12 中引入的。
您需要将 Spring Boot 配置为使用
org.hibernate.dialect.Oracle10gDialect
(11g 使用与 10g 相同的方言),它将使用 ROWNUM
psuedo-column 而不是 OFFSET ... FETCH ...
生成分页查询。