- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2010-06-14
JPQL 的一些用法
文章分类 :Java 编程
关联 (join)
JPQL 仍然支持和 SQL 中类似的关联语法:
left out join/left join
inner join
left join fetch/inner join fetch
left out join/left join 等,都是允许符合条件的右边表达式中的 Entiies 为空 (需要显式使用 left join/left outer join 的情况会
比较少。)
例:
// 获取 26 岁人的订单 ,不管 Order 中是否有 OrderItem
select o from Order o left join o.orderItems where o.ower.age=26 order by o.orderid
inner join 要求右边的表达式必须返回 Entities 。
例:
// 获取 26 岁人的订单 ,Order 中必须要有 OrderItem
select o from Order o inner join o.orderItems where o.ower.age=26 order by o.orderid
!!重要知识点:在默认的查询中, Entity 中的集合属性默认不会被关联,集合属性默认是延迟加载 ( lazy-load ) 。那么,
left fetch/left out fetch/inner join fetch 提供了一种灵活的查询加载方式来提高查询的性能。
例:
private String QueryInnerJoinLazyLoad(){
// 默认不关联集合属性变量 (orderItems) 对应的表
Query query = em.createQuery(select o from Order o inner join o.orderItems where o.ower.age=26 order by o.orderid);
List result = query.getResultList();
if (result!=null result.size()0){
// 这时获得 Order 实体中 orderItems( 集合属性变量 )为空
Order order = (Order) result.get(0);
// 当需要时, EJB3 Runtime 才会执行一条 SQL 语句来加载属于当前 Order 的
//OrderItems
SetOrderItem list = order.getOrderItems();
IteratorOrderItem iterator = list.iterator();
if (iterator.hasNext()){
OrderItem orderItem =iterator.next();
System.out.println ( 订购产品名: + orderItem.getProductname());
}
}
上面代码在执行 select o from Order o inner join o.orderItems where o.ower.age=26 order by o.orderid 时编译成的 SQL 如下
(他不包含集合属性变量 (orderItems) 对应表的字段) :
select order0_.orderid as orderid6_, order0_.amount as amount6_, order0_.person_id as
person4_6_, order0_.createdate as createdate6_ from Orders order0_ inner join OrderItems
orderitems1_ on order0_.orderid=orderitems1_.order_id, Person person2_ where
o
您可能关注的文档
最近下载
- 北师大版六年级上册数学《百分数的认识》(课件)(共17张PPT).pptx VIP
- 2025村委换届考试题及答案.docx VIP
- 2024《小红书运动户外行业白皮书》.docx
- 推荐浙江省土建安全技术资料台帐(十二本).doc VIP
- 肠套叠护理PPT课件讲解PPT课件.pptx VIP
- (沪教版2024)二年级数学上册新教材解读课件.pptx
- 小儿肛管排气.pptx VIP
- 新解读《GB_T 5271.9 - 2001信息技术 词汇 第9部分_数据通信》最新解读.docx VIP
- 新解读《GB_T 18492-2001信息技术 系统及软件完整性级别》最新解读.docx VIP
- PPT灌肠操作及并发症处理.pptx VIP
文档评论(0)