欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于hibernate中的fetch属性

程序员文章站 2022-04-25 22:11:59
...

fetch用来指定关联对象的抓取方式

主体对象:就是当前映射文件对应的类
关联对象:就是与之相关联的类

fetch的三个取值:

1.select,默认
		先查主体对象,再根据主体对象多次查询关联对象
2.join
		外连接,主体对象外连接到关联对象
3.subselect
		子查询,主体对象作为 in 语句中的项(也就是主体对象是子查询)
		
注意:subselect关联的对象一定是"多"方(一对多)
	解释:配置为subselect,in 中写的内容是主体对象
		比如:顾客和订单的关系是一对多,也就意味着一个订单只属于一个顾客。业务上一般不会出现根据多个订单查询某个顾客的情况,因为查出的结果不唯一(如刚好这几项订单属于一个顾客,所以得到一个结果。如果分别属于不同的顾客,查出的结果又不同了)。
		其查询语句如果是:
		select * from customer 
		where customer.oid in (
					select oid from order;
		); 显然没什么意义
		
在使用测试语句时注意的是:设置为join,使用createQuery(String HQL),join效果失效,依然是select。其他的查询语句没有测试,可以自己试试
相关标签: java hibernate