如果我们将一个对象的数组列表发送到数据库中,那么我们可以在从数据库中检索时获得相同的有序列表吗?

时间:2013-11-18 07:48:05

标签: java sorting arraylist

我按照某种顺序将对象的数组列表发送到数据库中,因此从数据库中获取时可以获得相同的有序列表。如果订单不一样,可能是什么原因?

以下是一些示例代码:

List<Branch> branchList = new ArrayList<Branch>();
Branch branch = new Branch();
branch.setName("branch1");
barnch.setId(2);
branchList.add(branch);
branch  = new Branch();
banch.setName("branch2");
barnch.setId(1);
branchList.add(branch);

Tenant tenant = new Tenant();
tenant.setName("StackOverFlow");
tenant.setListBranches(branchList);
dataStoreService.put(tenant); //put into the database.

2 个答案:

答案 0 :(得分:0)

根据定义,关系数据库中表中的行没有顺序。特定的关系数据库实现可能会按照创建的顺序在物理上存储行,甚至可能按顺序将它们返回给您,但您应该从不依靠该行为。

定义要对其进行排序的列。作为查询的一部分,包括ORDER BY。

答案 1 :(得分:0)

当然不是。数据库以最适合数据检索的方式组织存储的数据。插入数据库的列表将被放入数据结构中(对于公共数据库通常为B+ Tree)。

此数据结构将不记得数据的插入顺序。

如果您希望以与放入数据相同的顺序检索数据,则可以为表分配一个代理键(如果配置正确,将以与插入时相同的顺序逐步分配ID)或附加要插入的每一行的时间戳。