Hibernate复习之Hibernate 检索策略

阳光穿透心脏的1/2处 2022-05-18 04:44 318阅读 0赞

今日目录:

  1. 1、检索策略属性 Lazy
  2. 2、检索策略属性 batch-size
  3. 3、检索策略属性 Fetch

一、检索策略属性 Lazy

  1. Lazy:true (默认) 延迟检索 set 一对多

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

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

70

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

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

70 1

二、检索策略属性 batch-size

  1. 1、批量延迟检索;

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

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

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

2、批量立即检索;

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

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

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

三、检索策略属性 Fetch

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

2、Fetch:subselect 子查询方式;

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

  1. 4、迫切左外连接检索

优点:

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

缺点:

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

适用范围:

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

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

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

Class.java

70 2

Student.java

70 3

Class.hbm.xml

70 4

Student.hbm.xml

70 5

StudentTest.java

70 6

70 7

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

70 8

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

70 9

发表评论

表情:
评论列表 (有 0 条评论,318人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Hibernate检索策略

    检索策略追求的两个目标是:(以客户和订单的例子说明) 不浪费内存:当Hibernate从数据库中加载Customer对象时,如果同时加载所有关联的Order对象,而程序

    相关 Hibernate检索策略

           有一对有关联关系的对象A和B,在运行Query.list()方法时,先查出A记录,然后遍历A的id去B中查询。这种策略为立即检索策略。这种策略有两处缺点。一处是s