【发布时间】:2019-07-30 06:54:01
【问题描述】:
我们最近加入了一个现有项目,并在几个实体类中看到了以下代码示例:
@OneToMany(mappedBy = "department")
private List<Employee> employee= new LinkedList<>();
我与开发人员讨论过使用 ArrayList 而不是 LinkedList 进行休眠。但双方的论点都不够清楚。
通常,我出于多种目的使用 ArrayList。 Here is a good comparison
- 在引擎盖下的休眠功能是否更好?
- 使用linkedList有什么原因吗?
- 还是只是在项目中不知不觉中使用了它?
【问题讨论】:
-
您应该选择哪个列表完全取决于业务需求,并且您已经在您提出的问题中提到了答案
-
实际上,对于从数据库加载的实体,类型将为docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/collection/…,无论您在代码中指定的具体类型如何。具体类型将是仅用于新创建实体的 LinkedList。进一步查看stackoverflow.com/questions/8971010/…
-
几乎没有充分的理由使用
LinkedList,除非您有明确的证据表明LinkedList是更好的选择。在几乎所有情况下,数组列表都会表现得更好并且内存开销更少。