欢迎来到天天文库
浏览记录
ID:47359769
大小:32.50 KB
页数:4页
时间:2019-08-04
《Hibernate中的多表查询及抓取策略》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Hibernate中的多表查询及抓取策略一、Hibernate中的多表查询1、SQL中的多表查询【交叉连接】select*fromA,B;【内连接】显示内连接:innerjoin(inner可以省略)Select*fromAinnerjoinBon条件;隐式内连接:Select*fromA,Bwhere条件;【外连接】左外连接:leftouterjoinSelect*fromAleftouterjoinBon条件;右外连接:rightouterjoinSelect*fromArightouterjoin
2、Bon条件;2、Hibernate中的多表连接查询【交叉连接】交叉连接【内连接】显示内连接fromCustomercinnerjoinc.linkmans隐式内连接迫切内连接fromCustomercinnerjoinfetchc.linkmans【外连接】左外连接右外连接迫切左外连接二、Hibernate中的抓取策略1、延迟加载lazylazy延迟加载:查询的时候不发送sql语句,在使用对象的时候才发送sql语句查询延迟加载氛围类级别的延迟加载和关联级别的延迟加载1)类级别的延迟加载使用延迟加载的方法
3、查询某个类的时候是否采用的延迟称为是类级别的延迟。默认值是true。Customercustomer=session.load(Customer.class,1l);//默认就会采用延迟加载,这种称为是类级别的延迟。类级别延迟加载失效:*final修饰这个类,不能产生代理类,延迟加载就会失效。*在上配置lazy=”false”2)关联级别的延迟加载查询到某个对象以后,获得其关联的对象。查询其关联对象的时候是否采用的延迟。称为是关联级别的延迟。Customerc=session.get(Cu
4、stomer.class,1l);c.getLinkMans();//查询关联对象的时候,是否采用延迟加载。关联级别的延迟往往会与抓取策略一起使用,优化程序。(关联级别的延迟在或者是标签上的延迟加载)2、抓取策略抓取策略指的是查找到某个对象后,抓取其关联的对象的时候采用的策略。抓取策略就是在关联对象的配置上(和)配置fetch属性。1)在set上配置的lazy和fetchfetch:抓取策略,控制SQL语句的发送的格式。 * s
5、elect :默认值。发送一条select语句查询关联对象。 *join :发送一条迫切左外连接查询关联对象。 *subselect:发送一条子查询查询关联对象。 lazy:延迟加载,控制SQL语句的发送的时候。 *true :默认值。采用延迟加载。 *false:不采用延迟加载。 *extra:及其懒惰。2)在many-to-one上配置的lazy和fetchfetch:抓取策略,控制SQL语句的发送的格式。 *select :默认值.发送一条select语句查询关联
6、对象。 *join :发送一条迫切左外连接查询关联对象。lazy:延迟加载,控制SQL的发送的时机。 *proxy:默认值。是否采用延迟,需要由另一方类上的延迟加载来决定。 *false:不采用延迟加载。 *no-proxy:3)批量抓取 批量抓取:查询了多个客户的时候,查询多个客户下的所有联系人。 在Customer.hbm.xml中上配置batch-size=”n”大家都学习辛苦了,加油!继续努力!微信号858568103,可以领到资料,也可以帮忙解决问题,希望能真正的
7、帮到你,让学习更加轻松!
此文档下载收益归作者所有