我使用JPA Repository with Hibernate作为Sping Boot 应用程序中的数据源。
我以前的数据:
[{“id”:1,“name”:“非堆栈”},{“id”:2,“name”:“溢出”}]
我对以下数据执行保存操作:
{“标识”:1,“名称”:“堆栈”}
然后当我执行findAll()时,它检索到:
[{“标识”:2,“名称”:“溢出”},{“标识”:1,“名称”:“堆栈”},]
这是它应该如何工作的吗?关于这个问题有什么想法或解决方法吗?
我使用JPA Repository with Hibernate作为Sping Boot 应用程序中的数据源。
我以前的数据:
[{“id”:1,“name”:“非堆栈”},{“id”:2,“name”:“溢出”}]
我对以下数据执行保存操作:
{“标识”:1,“名称”:“堆栈”}
然后当我执行findAll()时,它检索到:
[{“标识”:2,“名称”:“溢出”},{“标识”:1,“名称”:“堆栈”},]
这是它应该如何工作的吗?关于这个问题有什么想法或解决方法吗?
2条答案
按热度按时间5gfr0r5j1#
findAll()
以无序的方式返回数据。它对这些记录进行排序的方式取决于RDBMS,通常是最方便的方式。在这种情况下,依赖于顺序并不是一个好主意。要保证记录按ID排序,您可以在存储库中创建自己的方法,例如:
有关方法命名的更多信息可以在SpringDataJPA参考中的4.3.2Querycreation中找到。
或者,您可以使用
findAll(org.springframework.data.domain.Sort)
方法,例如:oxiaedzo2#
findAll()只获取所有的数据,没有指定顺序。如果你想对结果进行排序,你应该使用
findAllOrderById()
。