为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 8.1
【操作系统】:
【CPU】:
【问题描述】*:
环境信息
- Spring Boot 版本:3.3.13
- ShardingJDBC 版本:5.5.0
- 数据库:达梦数据库(类Oracle语法)
- 分片配置:4张表,采用分页规则
问题描述
使用 Spring Data 的 PageRequest 执行分页查询时,预期的内存归并查询未触发,导致分页行为异常。
代码示例:
PageRequest page = PageRequest.of(0, 5, Sort.by(Sort.Direction.DESC, "id"));
Page<BusinessLog> certs = businessLogDao.findAll(page);
预期结果:
- 应返回5条记录(符合分页大小设置)
- 应从4个分片表归并结果并按ID降序排序
实际结果:
- 返回20条记录(来自4个分片,每个分片5条,未正确归并)
- 内存归并操作未执行
关键现象
- 分页大小被忽略——返回20条而非5条记录
- 排序可能未在所有分片间正确应用
- 无内存结果归并的迹象
需要协助的问题
1. 配置问题
2. 手动触发
3. 排查指导
- 推荐何种调试方法定位该问题?
- Spring Data JPA仓库方法与ShardingJDBC分页是否存在已知限制?
4. 数据库特性
- 达梦数据库(类Oracle)是否需要特殊处理?
- 是否需要方言配置或兼容性设置?