2014-01-15 71 views
0

刚学习Hibernate。 在列表类型属性映射中,似乎需要在保持列表的同时编写“list-index”。这包含列表中元素的索引/位置。休眠列表和设置映射

为什么这个“list-index”是必需的?在从数据库重新加载的同时重建列表?

如果是这样的话,Hibernate不能仅仅依靠插入的顺序作为重建的基础,而不是依赖这个“list-index”?

此外,在集合中,我们没有像“set-index”这样的东西是否因为在一个设置的位置并不重要?如HashSet或TreeSet(排序版本)等

回答

1

如果是这样的话,Hibernate不能只是将插入顺序作为重建的基础而不是依赖这个“list-index”?

答案是否定的。因为在数据库的行中,固有地没有秩序感。没有人能保证你可以得到查询的结果,当你将它插入到数据库中时就会被排序。因此为了跟踪索引,Hibernate还需要保留索引列。

但是生成HashSets和TreeSets并不取决于元素的顺序。如果散列方法和/或比较方法是已知的,那么使用它们的HashSets和/或TreeSet可以仅从该组元素构建。