休眠列表和设置映射

时间:2014-01-15 17:54:47

标签: java hibernate

刚刚学习Hibernate。 在列表类型属性映射中,似乎需要编写" list-index"同时坚持清单。它包含列表中元素的索引/位置。

为什么这个" list-index"是必须的?从DB再次加载时是否重建列表?

如果是这种情况,那么Hibernate是否可以将插入序列作为重建的基础,而不是依赖于这个" list-index" ?

此外,在Set中,我们没有像" set-index"是因为在一个固定的位置不重要吗?比如HashSet或TreeSet(排序版本)等。

1 个答案:

答案 0 :(得分:1)

  

如果是这种情况,Hibernate不能只将插入序列作为重建的基础,而不是依赖于这个“列表索引”吗?

答案是否定的。因为在数据库的行中,本质上没有秩序感。没有人可以保证您可以获得查询结果,在您将其插入数据库时​​进行排序。因此,为了跟踪索引,Hibernate还需要保留索引列。

但是HashSets和TreeSet的生成并不取决于元素的顺序。如果哈希方法和/或比较方法是已知的,那么使用它们HashSets和/或TreeSets只能从元素集构建。