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

Posted lonecloud

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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区别)的主要内容,如果未能解决你的问题,请参考以下文章

hibernate lazy属性true false extra

Hibernate学习笔记:级联删除

Hibernate检索学习

Hibernate延迟加载Lazy

Hibernate.initialize(Obj)用法

hibernate集合的加载策略