博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FetchType与FetchMode的差别
阅读量:5923 次
发布时间:2019-06-19

本文共 860 字,大约阅读时间需要 2 分钟。

使用例:

@OneToMany(mappedBy="item",cascade=CascadeType.ALL,fetch=FetchType.EAGER) 

@Fetch(value=FetchMode.SUBSELECT) 

两者比較:

两者都是设定关联对象的载入策略。前者是JPA标准的通用载入策略注解属性,

后者是Hibernate自有载入策略注解属性。

FetchType可选值意义与差别例如以下:

FetchType.LAZY: 懒载入。在訪问关联对象的时候载入(即从数据库读入内存)

FetchType.EAGER:立马载入。在查询主对象的时候同一时候载入关联对象。

FetchMode可选值意义与差别例如以下:

@ Fetch (FetchMode.JOIN) will use the left join query produced only one sql statement 
@ Fetch (FetchMode.SELECT) will have N +1 clause sql statement 
@ Fetch (FetchMode.SUBSELECT) produce two sql statement to use the second statement id in (.....) check out all the data associated

@Fetch(FetchMode.JOIN): 始终立马载入,使用外连(outer join)查询的同一时候载入关联对象,忽略FetchType.LAZY设定。

@Fetch(FetchMode.SELECT) :默认懒载入(除非设定关联属性lazy=false),当訪问每个关联对象时载入该对象,会累计产生N+1条sql语句

@Fetch(FetchMode.SUBSELECT)  默认懒载入(除非设定关联属性lazy=false),在訪问第一个关联对象时载入全部的关联对象。会累计产生两条sql语句。且FetchType设定有效。

转载地址:http://vkavx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
电影网站
查看>>
Windows Server 2012 R2 安装GUI
查看>>
RHEL7和RHEL6的版本对比
查看>>
Hadoop1的一些配置项
查看>>
我的友情链接
查看>>
RHEL5学习笔记——RH033(未完)
查看>>
mysql 中的存储过程,函数
查看>>
Python import
查看>>
JavaScript数组功能扩展--差集,并集,合集,去重
查看>>
web项目小总结
查看>>
你有没有聪明到利用云给你带来回报?
查看>>
我的友情链接
查看>>
分享有用的 Linux 命令行网络监控工具
查看>>
《.NET 编程结构》专题汇总
查看>>
MapReduce和spark的shuffle过程详解
查看>>
oracle修改MAX_STRING_SIZE,突然断电处理
查看>>
java hibernate关联查询返回一个集合,转换成json报json死循环处理
查看>>
C# 删除Collections中的重复数据
查看>>
NFS 网络系统配置及自动挂载
查看>>