- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
12 Hibernate数据抓取(加载)策略
Hibernate关联数据加载策略
命名约定
关联数据的种类( 以一对多为例)
教师对学生的关系是一对多,查询时可查询教师信
息,也可以查询学生信息
查询教师信息时,会携带学生信息的集合
获取的教师信息称为主数据
获取的学生信息集合称为主关联数据
查询学生信息时,会携带教师信息
获取的学生信息称为从数据
获取的教师信息称为从关联数据
本章知识研究的是主关联数据与从关联数据的加载
主关联数据加载策略
教师对学生的关系为一对多,此时在教师模型中配
置学生的集合。对教师模型对应的配置文件中的set
进行相关的配置,来控制对应的学生集合的数据加
载策略
fetch :用于控制进行关联查询时,产生的SQL语句
lazy:用于控制进行关联查询时,被关联数据的加载策略
fetch取值范围:select / subselect / join
lazy取值范围:true / false / extra
主关联数据加载策略fetch=select
lazy=false
获取主数据
执行主数据的查询SQL(一条SQL语句)
执行主关联数据所有信息查询SQL (多条SQL语句)
获取主关联数据集合中数据数量(A)
不执行SQL语句
获取主关联数据集合中数据的具体数据(B)
不执行SQL语句
主关联数据加载策略fetch=select
lazy=true
获取主数据
执行主数据的查询SQL
获取主关联数据集合中数据数量(A)
执行主关联数据对应的具体信息查询SQL(按需产生SQL语句A)
获取主关联数据集合中数据的具体数据(B)
执行主关联数据对应的具体信息查询SQL (按需产生SQL语句A)
注意:
操作A和操作B对应的查询SQL语句相同,查询执行后,数据
存入一级缓存,下次查询时,不再执行SQL语句
主关联数据加载策略fetch=select
lazy=extra
获取主数据
执行主数据的查询SQL
获取主关联数据集合中数据数量(A)
执行主关联数据集合数据总量查询SQL(按需产生SQL语句A)
获取主关联数据集合中数据的具体数据(B)
执行主关联数据对应的具体信息查询SQL (按需产生SQL语句B)
注意:
先执行A操作,再执行B操作,AB操作均产生SQL语句
先执行B操作,再执行A操作,BA操作只产生B操作SQL语句
主关联数据加载策略fetch=subselect
lazy=false
获取主数据
执行主数据的查询SQL(一条SQL语句)
执行主关联数据全部具体信息查询SQL (一条子查询SQL语句)
获取主关联数据集合中数据数量(A)
不执行SQL语句
获取主关联数据集合中数据的具体数据(B)
不执行SQL语句
注意( 以下fetch=subselect情况均符合下列描述):
使用Query查询,并且未携带OID作为查询条件,查询SQL语句采用子查询的形式
使用Query查询,携带OID作为查询条件或使用load/get查询,
查询SQL生成等同于fetch=select (subselect=select)
主关联数据加载策略fetch=subselect
lazy=true
获取主数据
执行主数据的查询SQL(一条SQL语句)
获取主关联数据集合中数据数量(A)
执行主关联数据对应的具体信息查询SQL(一条子查询SQL语句A)
文档评论(0)