Hibernate中的延迟加载和渴望加载之间的区别

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
性能
初始加载时间比急切加载要短得多
加载过多不必要的数据可能会影响性能