Lazy(懒加载)在hibernate何处使用:
1.<class>标签上,可以取值:true/false,(默认值是:true)
2.<property>标签上,可以取值:true/false,需要类增强工具
3.<set>,<list>集合上,可以取值:true/false/extra,(默认值为:true)
4.<one-to-one>,<many-to-one>单端关联上,可以取值:false/proxy/noproxy
在在set集合中的三个属性的区别
总的一句话为true的时候只有当用到的时候(id不算)才会被hibernate进行sql查询语句的发出
1.true为默认属性开启懒加载
如果类加载懒加载属性设置为false但是set集合中设置为true;
则默认为在使用到这个set集合的时候才会去发sql语句
2.false为不开启懒加载
如果类加载懒加载属性设置为false但是set集合中设置为false则类发了sql语句则set集合也会同时发出sql语句
3.extra极其懒惰的加载
true和extra区别
相对比true则是使用到的时候对这个整个数据进行加载
extra 则是对比如说size进行统计的时候回出现sql的进一步优化