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

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

使用例:

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

@Fetch(value=FetchMode.SUBSELECT) 

两者比较:

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

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

FetchType可选值意义与区别如下:

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

FetchType.EAGER:立刻加载,在查询主对象的时候同时加载关联对象。

FetchMode可选值意义与区别如下:

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

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

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

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

你可能感兴趣的文章
Mysql中Group By使用Having语句配合查询(where和having区别)
查看>>
C#连接数据库
查看>>
重定向和管道的区别
查看>>
分层、链式分析、url、联系的长度
查看>>
C++实现ping功能<转>
查看>>
使用matplotlib绘制收入增长模型——线性积累型与指数复利型
查看>>
【Spark】Spark-Redis连接池
查看>>
网络流简介
查看>>
How to fix “HTTP Status Code 505 – HTTP Version Not Supported” error?--转
查看>>
mybatis结合mysql批量操作及查询sql
查看>>
groovy gradle 构建配置
查看>>
Linux时间子系统(十五) clocksource
查看>>
BaseRecyclerViewAdapterHelper使用
查看>>
请说出三种减少页面加载时间的方法。
查看>>
HDU 2036 改革春风吹满地
查看>>
Deepin-快捷方式设置
查看>>
管理Java垃圾回收的五个建议
查看>>
【MySQL】MySQL的索引
查看>>
数数字
查看>>
配置阿里云Docker镜像加速仓库
查看>>