Hibernate复习之Hibernate 检索策略

今日目录:

       1、检索策略属性 Lazy

       2、检索策略属性 batch-size

       3、检索策略属性 Fetch

 

一、检索策略属性 Lazy

       Lazy:true (默认) 延迟检索 ;set 端 一对多

Lazy:false 立即检索;set 端 一对多

Lazy:extra 增强延迟检索; set 端 一对多

Lazy:proxy(默认) 延迟检索;many-to-one 多对一

扫描二维码关注公众号,回复: 2564310 查看本文章

Lazy:no-proxy 无代理延迟检索;many-to-one 多对一 (需要编译时字节码增强)

二、检索策略属性 batch-size

       1、批量延迟检索;

优点:由应用程序决定需要加载哪些对象,可以避免可执行多余的select语句,以及避免加载应用程序不需要访问的对象。因此能提高检索性能,并且能节省内存空间;

缺点:应用程序如果希望访问游离状态代理类实例,必须保证他在持久化状态时已经被初始化;

适用范围:(1)一对多或者多对多关联。(2)应用程序不需要立即访问或者根本不会访问的对象。

2、批量立即检索;

              优点:由应用程序决定需要加载哪些对象,可以避免可执行多余的select语句,以及避免加载应用程序不需要访问的对象。因此能提高检索性能,并且能节省内存空间;

缺点:应用程序如果希望访问游离状态代理类实例,必须保证他在持久化状态时已经被初始化;

适用范围:(1)一对多或者多对多关联。(2)应用程序不需要立即访问或者根本不会访问的对象。

三、检索策略属性 Fetch

       1、Fetch:select(默认) 查询方式;

2、Fetch:subselect 子查询方式;

3、Fetch:join 迫切左外连接查询方式;

       4、迫切左外连接检索

优点:

  1. 对应用程序完全透明,不管对象处于持久化状态,还是游离状态,应用程序都可以方便地冲一个对象导航到与它关联的对象。
  2. 使用了外连接,select语句数目少;

缺点:

  1. 可能会加载应用程序不需要访问的对象,白白浪费许多内存空间;
  2. 复杂的数据库表连接也会影响检索性能。

 

适用范围:

(1)多对一或者一对一关联。

(2)应用程序需要立即访问的对象。

(3)数据库系统具有良好的表连接性能

 

Class.java

Student.java

Class.hbm.xml

Student.hbm.xml

StudentTest.java

添加小编微信(y19970821ywty)可以获取工具,资源,二维码

要用到的工具,视频教程,关注公众号(Java学习之乐)直接免费获取:

猜你喜欢

转载自blog.csdn.net/wtyicy/article/details/81283902