首页 > 解决方案 > 没有 orderBy 的 Spring Boot CRUD findall:顺序可预测吗?

问题描述

由如下所示的 CRUD 存储库方法返回的列表是否具有可预测的顺序?

List<UserProfile> findAllByGroupKey (String groupKey);

数据库是 MySQL 5,Spring Boot 版本是 2.2.7。我希望列表中项目的顺序与它们存储在数据库中的顺序相同,但我不确定省略“orderBy”是否足以实现此结果。我找不到任何关于此的文档。

标签: spring-boot

解决方案


我用指定的配置(MySQL 5 和 Spring Boot 2.2.7)做了一些测试。答案肯定是“不”,至少如果索引不是一个渐进数字(在我的情况下它是一个 UUID)。

根据输入数据的方式,顺序是无法预测的。

以与输入数据库相同的顺序获取行的唯一方法是添加一个额外的排序变量(例如序列号或时间戳),并根据该变量使用“orderBy”显式对行进行排序。


推荐阅读