Lazy和Eager是ORM中的两种数据加载策略,例如休眠和Eclipse链接。当一个实体类引用其他实体(例如Employee和Phone(员工中的电话))时,我们使用了这些数据加载策略。
延迟加载-仅当我们显式调用getter或size方法时,关联数据才会加载。
使用一对多集合时,请使用延迟加载。
当您确定未使用相关实体时,请使用“延迟加载”。
Egare加载-数据加载发生在获取其父级时。
关系不太多时,请使用“渴望加载”。因此,急切加载是减少服务器上进一步查询的一种好习惯。
当您确定要在所有地方使用主要实体时,请使用“急切加载”。
序号 | 键 | 懒 | 急于 |
---|---|---|---|
1 | 提取策略 | 在延迟加载中,仅当我们显式调用getter或size方法时,关联数据才会加载。 | 在热切加载中,数据加载发生在获取其父级时 |
2 | ORM层中的默认策略 | 默认情况下,ManyToMany和OneToMany关联使用延迟加载策略。 | 默认情况下,ManyToOne和OneToOne关联使用延迟加载策略。 |
3 | 加载配置 | 可以通过使用注释参数启用它: fetch = FetchType.LAZY | 可以通过使用注释参数启用它: fetch = FetchType.EAGER |
4 | 性能 | 初始加载时间比急切加载要短得多 | 加载过多不必要的数据可能会影响性能 |