Hibernate中的Fetch(数据抓取)

本文详细探讨了Hibernate中的Fetch策略,包括单端关联和集合端的fetch设置,解析了select、join和subselect在不同场景下的应用,帮助优化数据抓取效率。
摘要由CSDN通过智能技术生成

Hibernate抓取策略(fetch)


一、单端关联上的fetch[取值:select(默认)/join]


测试用例:
TBook b = (TBook)session.get(TBook.class,1);

System.out.println("图书名称:"+b.getBName());

System.out.println("图书类别:"+b.getCategory().getCategory());
1)保持默认,相当于fetch="select"
如:<many-to-one name="category" class="cn.bdqn.pojo.Category" cascade="all" fetch="select">
数据抓取过程中,select抓取会另外发送一条select语句来抓取与当前对象相关联的实体或集合。
执行结果:2条语句
Hibernate: select tbook0_.id as id1_1_0_, tbook0_.category_Id as category2_1_0_, tbook0_.author as author3_1_0_, tbook0_.b_name as b_name4_1_0_, tbook0_.b_price as b_price5_1_0_, tbook0_.pubDate as pubDate6_1_0_ from admindb.t_book tbook0_ where tbook0_.id=?
图书名称:红楼梦
Hibernate: select category0_.id as id1_0_0_, category0_.category as category2_0_0_ from admindb.category category0_ where category0_.id=?
图书类别:文学
2)设置fetch="join"
如:<many-to-one name="category" class="cn.bdqn.pojo.Category" cascade="all"fetch="join">
数据抓取过程中,join抓取会通过select语句使用外连接来加载其关联实体或集合。
执行结果:1条语句

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值