刚刚学习Hibernate。 在列表类型属性映射中,似乎需要编写" list-index"同时坚持清单。它包含列表中元素的索引/位置。
为什么这个" list-index"是必须的?从DB再次加载时是否重建列表?
如果是这种情况,那么Hibernate是否可以将插入序列作为重建的基础,而不是依赖于这个" list-index" ?
此外,在Set中,我们没有像" set-index"是因为在一个固定的位置不重要吗?比如HashSet或TreeSet(排序版本)等。
答案 0 :(得分:1)
如果是这种情况,Hibernate不能只将插入序列作为重建的基础,而不是依赖于这个“列表索引”吗?
答案是否定的。因为在数据库的行中,本质上没有秩序感。没有人可以保证您可以获得查询结果,在您将其插入数据库时进行排序。因此,为了跟踪索引,Hibernate还需要保留索引列。
但是HashSets和TreeSet的生成并不取决于元素的顺序。如果哈希方法和/或比较方法是已知的,那么使用它们HashSets和/或TreeSets只能从元素集构建。