什么是懒加载?
懒加载(Load On Demand)是一种独特而又强大的数据获取方法,它能够在用户滚动页面的时候自动获取更多的数据,而新得到的数据不会影响原有数据的显示,同时最大程度上减少服务器端的资源耗用。(百度说的)
通俗点,就是在找一个对象时不找出与他关联的对象,而是在需要相关联对象(或其属性)时才去数据库中找,也称之为延迟加载。
我们一般通过MyEclipse的逆向工程生成实体类,并为该类自动配置注解,该实体类有一个一对多的属性,这时hibernate自身提供给我们fetch = FetchType.LAZY这个属性:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "standard")
public Set<Courier> getCouriers() {
return this.couriers;
}
从代码上可以看到,该注解默认设置了延迟加载fetch = FetchType.LAZY。所以当应用程序查询该实体类对应的表的数据时,出现了以下错误:
org.hibernate.LazyInitializationException:could n