集合属性的延迟加载

Hibernae 的延迟加载是一个非常常用的技术,实体的集合属性默认会被延迟加载,实体所关联的实体默认也会被延迟加载。Hibernate 通过这种延迟加载来降低系统的内存开销,从而保证 Hibernate 的运行性能。

下面先来剖析 Hibernate 延迟加载的“秘密”。

集合属性的延迟加载

当 Hibernate 从数据库中初始化某个持久化实体时,该实体的集合属性是否随持久化类一起初始化呢?如果集合属性里包含十万,甚至百万的记录,在初始化持久化实体的同时,完成所有集合属性的抓取,网站空间,将导致性能急剧下降。完全有可能系统只需要使用持久化类集合属性中的部分记录,香港服务器,而完全不是集合属性的全部,这样,虚拟主机,没有必要一次加载所有的集合属性。

对于集合属性,通常推荐使用延迟加载策略。所谓延迟加载就是等系统需要使用集合属性时才从数据库装载关联的数据。

例如下面 Person 类持有一个集合属性,该集合属性里的元素的类型为 Address,该 Person 类的代码片段如下:

清单 1. Person.java

Person 2 { Integer id; String name; age; Set<Address> addresses = new HashSet<Address>(); … 13 } 是不是因为心痛的麻木了,我才笑得最美丽。

集合属性的延迟加载

相关文章:

你感兴趣的文章:

标签云: