检索策略的具体表现形式是(检索策略)

来源:互联网

2023-06-07 15:00:00

1、类级别检索策略有立即检索和延迟检索,默认的检索策略是立即检索。

2、在Hibernate映射文件中,通过在上配置lazy属性来确定检索策略。


(资料图片仅供参考)

3、对于Session的检索方式,类级别检索策略仅适用于load方法;也就说,对于get、qurey检索,持久化对象都会被立即加载而不管lazy是false还是true.一般来说,我们检索对象就是要访问它,因此立即检索是通常的选择。

4、由于load方法在检索不到对象时会抛出异常(立即检索的情况下),因此我个人并不建议使用load检索;而由于中的lazy属性还影响到多对一及一对一的检索策略,因此使用load方法就更没必要了。

5、 关联级别检索策略有立即检索、延迟检索和迫切左外连接检索。

6、对于关联级别检索,又可分为一对多和多对多、多对一和一对一两种情况讨论。

7、 一对多和多对多关联关系一般使用配置。

8、有lazy和outer-join属性,它们的不同取值绝对了检索策略。

9、 1)立即检索:这是一对多默认的检索策略,此时lazy=false,outer-join=false.尽管这是默认的检索策略,但如果关联的集合是无用的,那么就不要使用这种检索方式。

10、 2)延迟检索:此时lazy=true,outer-join=false(outer-join=true是无意义的),这是优先考虑的检索方式。

11、 3)迫切左外连接检索:此时 lazy=false,outer-join=true,这种检索策略只适用于依靠id检索方式(load、get),而不适用于query的集合检索(它会采用立即检索策略)。

12、相比于立即检索,这种检索策略减少了一条sql语句,但在Hibernate中,只能有一个配置成 outer-join=true. 多对一和一对一检索策略一般使用配置。

13、中需要配置的属性是 outer-join,同时还需要配置one端关联的的lazy属性(配置的可不是中的lazy哦),它们的组合后的检索策略如下: 1) outer-join=auto:这是默认值,如果lazy=true为延迟检索,如果lazy=false为迫切左外连接检索。

14、 2) outer-join=true,无azy,都为迫切左外连接检索。

15、 3) outer-join=false,如果lazy=true为延迟检索,否则为立即检索。

16、 可以看到,在默认的情况下(outer-join=auto,lazy=false),对关联的one端对象Hibernate采用的迫切左外连接检索。

17、依我看,很多情况下,我们并不需要加载one端关联的对象(很可能我们需要的仅仅是关联对象的id);另外,如果关联对象也采用了迫切左外连接检索,就会出现select语句中有多个外连接表,如果个数多的话会影响检索性能,这也是为什么Hibernate通过hibernate.max_fetch_depth属性来控制外连接的深度。

18、对于迫切左外连接检索,query的集合检索并不适用,它会采用立即检索策略。

19、 对于检索策略,需要根据实际情况进行选择。

20、对于立即检索和延迟检索,它们的优点在于select语句简单(每张表一条语句)、查询速度快,缺点在于关联表时需要多条select语句,增加了访问数据库的频率。

21、因此在选择即检索和延迟检索时,可以考虑使用批量检索策略来减少select语句的数量(配置batch-size属性)。

22、对于切左外连接检索,优点在于select较少,但缺点是select语句的复杂度提高,多表之间的关联会是很耗时的操作。

23、另外,配置文件是死的,但程序是活的,可以根据需要在程序里显示的指定检索策略(可能经常需要在程序中显示指定迫切左外连接检索)。

24、为了清楚检索策略的配置效果如何,可以配置show_sql属性查看程序运行时Hibernate执行的sql语句。

本文分享完毕,希望对大家有所帮助。

关键词:

检索策略的具体表现形式是(检索策略)

索策略的具体表现形式是,检索策略这个问题很多朋友还不知道,来为大家[详细]
2023-06-07

世界消息!台湾北部各水库水位持续上升 翡翠、石门蓄水率突破6成大关

台湾北部地区各水库蓄水率近日持续上升,其中翡翠及石门水库7日蓄水率[详细]
2023-06-07

项目管理中,如何减少项目风险? 热资讯

项目管理中,如何减少项目风险?-我们公司,有一个项目已经做了一年多[详细]
2023-06-07

迪威尔(688377):6月7日技术指标出现观望信号-“黑三兵” 世界今热点

摘要:2023年06月07日迪威尔(688377)主力资金净流入62 21万元,占总[详细]
2023-06-07

万亿级农村充电桩市场建设启动,用还是不用?农村用户现分歧

近日,国家发改委、国家能源局发布了关于《加快推进充电基础设施建更好[详细]
2023-06-07

凯利泰:6月6日融资净买入322.94万元,连续3日累计净买入641.4万元

6月6日,凯利泰(300326)融资买入622 82万元,融资偿还299 88万元,融[详细]
2023-06-07

环球聚焦:都是54岁“冻龄女神”,李若彤温碧霞同台,状态如何一目了然

都是54岁“冻龄女神”,李若彤温碧霞同台,状态如何一目了然李若彤温碧[详细]
2023-06-07

华为云发布新一代分布式数据库GaussDB,称核心代码100%自研

紫金财经6月7日消息在华为全球智慧金融峰会2023上,华为常务董事、华为[详细]
2023-06-07

环球微资讯!欧股小幅收高 欧元区消费者对通胀更为乐观

欧股周二收高,斯托克600指数上涨0 38%,德国DAX指数上涨0 18%,法国CA[详细]
2023-06-07

消息称一加折叠屏 8 月在海外发布,或为 OPPO Find N3 国际版 今日快讯

一加CEO刘作虎本人此前便透露,第一款一加OnePlus折叠屏智能手机将于今[详细]
2023-06-07
版权所有: 热讯制冷网 All Rights Reserved
豫ICP备20005723号-6
联系邮箱:29 59 11 57 8@qq.com