gpt4 book ai didi

java - 哪种方法对碱基和排序速度更优?

转载 作者:行者123 更新时间:2023-11-30 10:15:01 24 4
gpt4 key购买 nike

我现在有一个列表

@OneToMany(mappedBy = "movie", orphanRemoval = true, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@OrderBy("date ASC")
private List<MovieReleaseDateEntity> releaseDates = new ArrayList<>();

下载时的实体按日期排序。

但是,如您所知,List 并不是最适合 JPA 的,建议使用 Set。这就是为什么我有不同的想法

@OneToMany(mappedBy = "movie", orphanRemoval = true, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private SortedSet<MovieReleaseDateEntity> releaseDates = new TreeSet<>();

并实现Comparable

public int compareTo(MovieReleaseDateEntity o) {
return this.date.compareTo(o.date);
}

哪种方式更好?第一个是 List 还是第二个是 Set

最佳答案

数据库旨在以优化的方式执行 order by 命令,同时为 order by 中使用的列编制索引。
因此,如果您可以调整表上的索引约束,则应该支持按数据库排序。

However, as you know, the List are not the most suitable for JPA and it is recommended to use Set.

我宁愿说你不能滥用实体中的 List 映射,因为出于合理的原因(基数),可接受的数量是有限的。

您还可以更简单地看待事物:如果您的元素很少,我想就性能而言,使用 Set 可能是一种可接受的方式。
否则,使用由数据库完成的 Listorder by 可能更受欢迎。

在任何情况下,使用看起来最适合您的用例的结构(ListSet),然后在更改您的设计之前测量实际性能以希望具有更好的性能。

关于java - 哪种方法对碱基和排序速度更优?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50668646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com