hibernate 对象查询语言.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hibernate 对象查询语言

上讲回顾 理解Hibernate的对象状态管理功能 理解Hibernate中对象的状态的定义 掌握Hibernate的会话工厂及会话的获取方法 掌握Hibernate中对象操作方法 本课目标 了解Hibernate对象查询方法 理解HQL实现原理及功能 掌握HQL结构 熟练使用HQL检索信息 对象查询 Hibernate中对象查询包括以下三类: HQL:Hibernate Query Language,是一种对象查询语言,来源于EJB的EQL(Entity Query Language),它只对对象进行检索,而不管对象数据的装载,对于开发人员来说面对的都是Java对象,因此及其方便、灵活。 条件查询:HQL极为强大,但是有些人希望能够动态的使用一种面向对象API创建查询,即,不再使用诸如select、from、like等HQL查询语言而是将这些转换成API的调用,而非在他们的Java代码中嵌入字符串。对于那部分人来说,Hibernate提供了直观的Criteria查询API。 原生SQL:你可以使用createSQLQuery()方法,用SQL来描述查询,并由Hibernate将结果集转换成对象。 HQL Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SOL.但HQL与SQL是两种完全不同的语言,只不过在结构上HQL引用了SQL优秀的一面,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。 除了Java与属性名称外,查询语言对大小写并不敏感,如:sELect等同于select、SELECT,但,com.jz.model.User是并不等价于 com.jz.model. uSEr,也不等价于com.jz.model.USER。 在书写HQL时所有的关键字Hibernate推荐全部使用小写,这样更清晰美观。在使用Java对象是也不需要全限定名,Hibernate会自动引入指定的对象,如下: “select menu from com.jz.model.Menu menu”= “select menu from Menu menu” from字句 HQL可以直接使用from子句进行对象查询,功能类似于SQL,它将返回所有满足条件的完整的持久化类实例,其使用形式如下: 查询单个对象: from Menu : 返回所有Menu from Menu menu:返回所有Menu并指定别名 from Menu as menu:返回所有Menu并使用as关键字指定别名 查询多个对象 from Menu,User :查询Menu和User的笛卡尔积 from Menu as menu,User as user:查询Menu和User的笛卡尔积 查询多个对象时返回的是多表的笛卡尔积或跨表连接,返回的结果则是各对象组成的数组。 from字句示例 from字句示例 关联与连接 同SQL一样,对于相互关联的多个对象可以使用连接查询,Hibernate支持以下连接: inner join :内连接,返回满足条件的所有对象。 left outer join(或left join):左外连接,返回连接关系左边所有的对象,以及右边满足条件的对象,如果左边的对象在右边没有对应的对象,则右边的对象为空。 right outer join(或left join):右外连接,返回连接关系右边所有的对象,以及左边满足条件的对象,如果右边的对象在左边没有对应的对象,则左边的对象为空。 full join:全连接,返回左边和右边的所有对象,不满足条件的都为空。 关联与连接示例 关联与连接示例 关联与连接示例 join的语法形式 join有两种语法形式: 显示的:即显示的使用join关键字指定连接种类,以上示例全是显示连接,推荐使用 隐式连接:即不使用join关键字指定连接,而使用“.”来指定关联关系,最终Hibernate会将其转换成内连接,如下示例: from Menu menu where menu.actions.actionName like ‘%机构%’ 上面语句需要访问Menu对应的Action,则可以使用“.”来访问actions,在映 射文件中actions对应的正好是Action对象,因此又可以使用“.”来访问Action 的属性,hibernate会将其解析成Menu和Action对象的内连接。 join的语法形式示例 select子句2-1 select子句选择将哪些对象与属性返回到查询结果集中,如下面的语句,返回Menu对象: select menu from Menu menu select使用方式如下: 可以指定返回持久化对象,但必须指明对象的别名,如上例 可以指

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档