iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Hibernate检索策略是什么
  • 381
分享到

Hibernate检索策略是什么

2023-06-17 21:06:23 381人浏览 安东尼
摘要

本篇内容介绍了“Hibernate检索策略是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Hibernate检索策略包括类级别检索策略和

本篇内容介绍了“Hibernate检索策略是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Hibernate检索策略包括类级别检索策略和关联级别检索策略。

类级别检索策略有立即检索和延迟检索,默认的检索策略是立即检索。在Hibernate映射文件中,通过在<class>上配置lazy属性来确定检索策略。对于Session的检索方式,类级别检索策略仅适用于load方法;也就说,对于get、qurey检索,持久化对象都会被立即加载而不管lazy是false还是true.一般来说,我们检索对象就是要访问它,因此立即检索是通常的选择。由于load方法在检索不到对象时会抛出异常(立即检索的情况下.,因此我个人并不建议使用load检索;而由于<class>中的lazy属性还影响到多对一及一对一的检索策略,因此使用load方法就更没必要了。

关联级别检索策略有立即检索、延迟检索和迫切左外连接检索。对于关联级别检索,又可分为一对多和多对多、多对一和一对一两种情况讨论。

一对多和多对多关联关系一般使用<set>配置。<set>有lazy和outer-join属性,它们的不同取值绝对了检索策略。

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

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

迫切左外连接检索:此时 lazy=false,outer-join=true,这种检索策略只适用于依靠id检索方式(load、get.,而不适用于query的集合检索(它会采用立即检索策略.。相比于立即检索,这种检索策略减少了一条sql语句,但在Hibernate中,只能有一个<set>配置成 outer-join=true.

多对一和一对一检索策略一般使用<many-to-one>、<one-to-one>配置。<many-to-one>中需要配置的属性是 outer-join,同时还需要配置one端关联的<class>的lazy属性(配置的可不是<many-to-one>中的lazy哦.,它们的组合后的检索策略如下:
1.outer-join=auto:这是默认值,如果lazy=true为延迟检索,如果lazy=false为迫切左外连接检索。
2.outer-join=true:无关于lazy,都为迫切左外连接检索。
3.outer-join=false:如果lazy=true为延迟检索,否则为立即检索。

可以看到,在默认的情况下(outer-join=auto,lazy=false.,对关联的one端对象Hibernate采用的迫切左外连接检索。依我看,很多情况下,我们并不需要加载one端关联的对象(很可能我们需要的仅仅是关联对象的id.;另外,如果关联对象也采用了迫切左外连接检索,就会出现select语句中有多个外连接表,如果个数多的话会影响检索性能,这也是为什么Hibernate通过hibernate.max_fetch_depth属性来控制外连接的深度。对于迫切左外连接检索,query的集合检索并不适用,它会采用立即检索策略。

对于Hibernate检索策略,需要根据实际情况进行选择。对于立即检索和延迟检索,它们的优点在于select语句简单(每张表一条语句),查询速度快,缺点在于关联表时需要多条select语句,增加了访问数据库的频率。因此在选择即检索和延迟检索时,可以考虑使用批量检索策略来减少select语句的数量(配置batch-size属性)。对于切左外连接检索,优点在于select较少,但缺点是select语句的复杂度提高,多表之间的关联会是很耗时的操作。另外,配置文件是死的,但程序是活的,可以根据需要在程序里显示的指定检索策略(可能经常需要在程序中显示指定迫切左外连接检索)。为了清楚检索策略的配置效果如何,可以配置show_sql属性查看程序运行时Hibernate执行的sql语句。

“Hibernate检索策略是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Hibernate检索策略是什么

本文链接: https://www.lsjlt.com/news/293214.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Hibernate检索策略是什么
    本篇内容介绍了“Hibernate检索策略是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Hibernate检索策略包括类级别检索策略和...
    99+
    2023-06-17
  • Hibernate中抓取策略是怎么样的
    小编给大家分享一下Hibernate中抓取策略是怎么样的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hibernate抓取策略(fetching strateg...
    99+
    2023-06-17
  • Java探索之Hibernate主键生成策略详细介绍
    1.increment     由Hibernate从数据库中去除主键的最大值(每个session只取一次),以该值为基础,每次增量为1,在内存中生成主键,不依赖于底层的数据库,因此可以跨数据库。&l...
    99+
    2023-05-30
    java hibernate ava
  • Redis删除策略和逐出策略是什么
    这篇文章主要介绍了Redis删除策略和逐出策略是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。过期数据先来看三个key值,分别为sex、na...
    99+
    2024-04-02
  • MySQL索引的原理与优化策略是什么
    这篇文章主要介绍了MySQL索引的原理与优化策略是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL索引的原理与优化策略是什么文章都会有所收获,下面我们一起来看看吧。索引的概念MySQL索引是一种用于...
    99+
    2023-07-05
  • MongoDB索引策略与优化的方法是什么
    MongoDB的索引策略和优化方法包括以下几个方面: 选择合适的字段建立索引:根据查询需求和数据访问模式选择需要建立索引的字段,...
    99+
    2024-05-07
    MongoDB
  • MySQL8.0密码策略是什么
    这篇文章主要讲解了“MySQL8.0密码策略是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL8.0密码策略是什么”吧!从8.0.4开始mysq...
    99+
    2024-04-02
  • 什么是TypeScript策略模式
    本篇内容介绍了“什么是TypeScript策略模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • Kubernetes网络策略是什么
    这篇文章主要讲解了“Kubernetes网络策略是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Kubernetes网络策略是什么”吧!NetworkPolicy 概念网络策略Netwo...
    99+
    2023-06-27
  • MySQL数据库索引原理及优化策略是什么
    这篇文章主要介绍“MySQL数据库索引原理及优化策略是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL数据库索引原理及优化策略是什么”文章能帮助大家解决...
    99+
    2023-05-12
    mysql
  • java中什么是策略模式
    这篇文章主要介绍了java中什么是策略模式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是策略模式比如说对象的某个行为,在不同场景中有不...
    99+
    2024-04-02
  • Redis持久化策略是什么
    本篇内容介绍了“Redis持久化策略是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Redis(Rem...
    99+
    2022-11-30
    redis
  • Redis的过期策略是什么
    本篇内容介绍了“Redis的过期策略是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!保存过期时间Redis可以为每个key设置过期时间,...
    99+
    2023-06-22
  • 什么是Vista系统组策略
    什么是Vista系统组策略,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 如果把使用操作系统看成是修习武功的话,那么在学些过程中也是有”武功秘籍”可以...
    99+
    2023-06-14
  • JavaWeb的同源策略是什么
    本文小编为大家详细介绍“JavaWeb的同源策略是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaWeb的同源策略是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Java Web相关技术里的同源策...
    99+
    2023-06-26
  • Hibernate检查id字段的方法是什么
    这篇文章主要讲解了“Hibernate检查id字段的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate检查id字段的方法是什么”吧!当你想要创建一个将其它域对象保存在...
    99+
    2023-06-17
  • 索引和打包:Python 中的实时优化策略是什么?
    在数据处理领域中,索引和打包是非常重要的概念。在 Python 中,实时优化策略可以帮助我们更好地利用这些概念来提高数据处理的效率。本文将介绍索引和打包的概念,并提供一些实时优化策略的示例代码。 一、索引和打包的概念 索引是指通过某种方式...
    99+
    2023-10-29
    索引 实时 打包
  • mysql主从复制策略是什么
    这篇文章主要介绍“mysql主从复制策略是什么”,在日常操作中,相信很多人在mysql主从复制策略是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql主从复制策略是什么”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • nginx负载均衡策略是什么
    Nginx负载均衡策略是指Nginx服务器在处理客户端请求时,将请求分发到多个后端服务器上以实现负载均衡的一种策略。常见的Nginx...
    99+
    2023-09-02
    负载均衡 nginx
  • HTML5内容安全策略是什么
    本文小编为大家详细介绍“HTML5内容安全策略是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML5内容安全策略是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作