懒加载(FatchType.LAZY)是Hibernate为提升程序执行效率而提供的一种机制,简单说就是只有正真使用其属性的时候,数据库才会进行查询。数据库
具体的执行过程就是:Hibernate从数据库获取某一个对象数据时、获取某一个对象的集合属性值时,或获取某一个对象所关联的另外一个对象时,因为没有使用该对象的数据,Hibernate并非数据库加载真正的数据,而只是为该对象建立一个代理对象来表明这个对象,这个对象上的全部属性都是默认值;只有在真正须要使用该对象的数据时才建立这个真实对象,真正从数据库中加载它的数据,这样在某些状况下,就能够提升查询效率。session
注意:.可以懒加载的对象都是被改写过的代理对象,当相关联的session没有关闭时,访问这些懒加载对象(代理对象)的属性hibernate会初始化这些代理,或当相关联的session关闭后,再访问懒加载的对象将出现异常。spa
急加载(FatceType.EAGER)在加载一个实体时,会当即从数据库中查询,与其关联的类也会被同时查询hibernate
区别:若是使用急加载程序会在第一次运行是把数据加载到内存会消耗一段时间,日后运行查找就会很快;代理
懒加载会如今内存中存储查询当前的表,相关联的表则会在真正查找的时候,进行查询;对象