首页 > 代码库 > Hibernate学习(五)lazy属性学习(true和extra区别)

Hibernate学习(五)lazy属性学习(true和extra区别)

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的进一步优化

Hibernate学习(五)lazy属性学习(true和extra区别)