在JPA存储库中使用SpringData可分页对象进行排序时出现重复结果



我有一个rest api,它在调用时返回用户列表。API使用org.springframework.data.domain.Pageable对结果进行分页和排序。这只需将可分页的内容传递给JPA存储库,然后由它返回所需的页面。

出于某种原因,当按名字排序时,可能会出现重复的条目,但前提是多个条目的名字相同。但是,当按lastName排序时,这种情况永远不会发生。两者都只是实体中的字符串,除了属性名称之外没有明显的区别。

你们中有人遇到过这种情况吗?如果遇到过,你是如何解决的?

编辑:澄清一下,在控制器和存储库之间基本上没有我的逻辑。我只是通过页面并返回结果。

第二版:解决了!有趣的小标题:这个问题之所以只在按名字排序时发生,是因为无论条目的排序方式如何,只有记录总是出现在第1页和第2页上。幸运的是,我们的测试人员使用了特定的测试数据,或者我可能从未注意到。

是的,我已经看到:记录可以出现在第1页,然后再次出现在第2页。

这是数据库级别的问题。例如,每页10个项目以及位置10和11处的项目具有相同的属性值,则哪个项目出现在每个结果集中的哪个位置可以是随机的。

因此,对唯一属性(例如数据库ID(应用二次排序,以确保请求之间的顺序一致。

最新更新