时间:2021-05-20
1.Hibernate中的多表查询
1.1SQL中的多表查询
【交叉连接】
select * from A,B;
【内连接】
显示内连接:inner join(inner 可以省略)
Select * from A inner join B on 条件;
隐式内连接:
Select * from A,B where 条件;
【外连接】
左外连接:left outer join
Select * from A left outer join B on 条件;
右外连接:right outer join
Select * from A right outer join B on 条件;
1.2Hibernate中的多表连接查询
【交叉连接】
交叉连接
【内连接】
显示内连接 from Customer c inner join c.linkmans
隐式内连接
迫切内连接from Customer c inner join fetch c.linkmans
【外连接】
左外连接
右外连接
迫切左外连接
2.Hibernate中的抓取策略
2.1 延迟加载lazy
lazy延迟加载: 查询的时候不发送sql语句,在使用对象的时候才发送sql语句查询
延迟加载氛围类级别的延迟加载和关联级别的延迟加载
2.1.1类级别的延迟加载
使用延迟加载的方法查询某个类的时候是否采用的延迟称为是类级别的延迟。默认值是true。
Customer customer = session.load(Customer.class,1l);// 默认就会采用延迟加载,这种称为是类级别的延迟。
类级别延迟加载失效:
* final修饰这个类,不能产生代理类,延迟加载就会失效。
* 在<class>上配置lazy=”false”
2.1.2关联级别的延迟加载
查询到某个对象以后,获得其关联的对象。查询其关联对象的时候是否采用的延迟。称为是关联级别的延迟。
Customer c = session.get(Customer.class,1l);c.getLinkMans(); // 查询关联对象的时候,是否采用延迟加载。关联级别的延迟往往会与抓取策略一起使用,优化程序。(关联级别的延迟在<set>或者是<many-to-one>标签上的延迟加载)
2.2抓取策略
抓取策略指的是查找到某个对象后,抓取其关联的对象的时候采用的策略。抓取策略就是在关联对象的配置上(<set>和<many-to-one>)配置fetch属性。
2.2.1 在set上配置的lazy和fetch
fetch:抓取策略,控制SQL语句的发送的格式。
* select :默认值。发送一条select语句查询关联对象。
* join :发送一条迫切左外连接查询关联对象。
* subselect :发送一条子查询查询关联对象。
lazy:延迟加载,控制SQL语句的发送的时候。
* true :默认值。采用延迟加载。
* false :不采用延迟加载。
* extra :及其懒惰。
2.2.2 在many-to-one上配置的lazy和fetch
fetch:抓取策略,控制SQL语句的发送的格式。
* select :默认值.发送一条select语句查询关联对象。
* join :发送一条迫切左外连接查询关联对象。
lazy:延迟加载,控制SQL的发送的时机。
* proxy :默认值。是否采用延迟,需要由另一方类上的延迟加载来决定。
* false :不采用延迟加载。
* no-proxy:
2.2.3 批量抓取
批量抓取:查询了多个客户的时候,查询多个客户下的所有联系人。
在Customer.hbm.xml中<set>上配置batch-size=”n”
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
主要从以下十几个方面对Hibernate做总结,包括Hibernate的检索方式,Hibernate中对象的状态,Hibernate的3种检索策略是什么,分别适
浅谈hibernate中懒加载禁用操作懒加载的概念:懒加载就是hibernate中的延迟加载,在hibernate中的一对多,多对多关系中通过对象导航来查询对象
查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看。Mysql多表查询:复制代码代码如下:CR
本文实例讲述了MongoDB多表关联查询操作。分享给大家供大家参考,具体如下:Mongoose的多表关联查询首先,我们回忆一下,MySQL多表关联查询的语句:s
前言在mysql中,多表连接查询是很常见的需求,在使用多表查询时,可以from多个表,也可以使用join连接连个表这两种查询有什么区别?哪种查询的效率更