Hibernate HQL 语法大全

Hibernate HQL 语法大全

ID:46579552

大小:188.37 KB

页数:12页

时间:2019-11-25

Hibernate HQL 语法大全_第1页
Hibernate HQL 语法大全_第2页
Hibernate HQL 语法大全_第3页
Hibernate HQL 语法大全_第4页
Hibernate HQL 语法大全_第5页
资源描述:

《Hibernate HQL 语法大全》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、HibernateHQL语法大全HQL:Hibernate查询语言Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。1.大小写敏感性问题除了Java类与属性的名称外,查询语句对大小写并不敏感。所以SeLeCT与sELEct以及SELECT是相同的,但是org.hibernate.eg.FOO并不等价于org.hibernate.eg.Foo并且foo.barSet也不等价于foo.BARSET。本手册中的HQL关键字将使用小写字母.很多用户

2、发现使用完全大写的关键字会使查询语句的可读性更强,但我们发现,当把查询语句嵌入到Java语句中的时候使用大写关键字比较难看。2.from子句Hibernate中最简单的查询语句的形式如下:fromeg.Cat该子句简单的返回eg.Cat类的所有实例。通常我们不需要使用类的全限定名,因为auto-import(自动引入)是缺省的情况。所以我们几乎只使用如下的简单写法:fromCat大多数情况下,你需要指定一个别名,原因是你可能需要在查询语句的其它部分引用到CatfromCatascat这个语句把别名cat指定给类Cat的实例,这样我们就可以在随后的查询中使用此别名了。关键字as是可选的

3、,我们也可以这样写:fromCatcat子句中可以同时出现多个类,其查询结果是产生一个笛卡儿积或产生跨表的连接。fromFormula,ParameterfromFormulaasform,Parameterasparam查询语句中别名的开头部分小写被认为是实践中的好习惯,这样做与Java变量的命名标准保持了一致(比如,domesticCat)。3.关联(Association)与连接(Join)我们也可以为相关联的实体甚至是对一个集合中的全部元素指定一个别名,这时要使用关键字join。fromCatascatinnerjoincat.mateasmateleftouterjoinc

4、at.kittensaskittenfromCatascatleftjoincat.mate.kittensaskittensfromFormulaformfulljoinform.parameterparam受支持的连接类型是从ANSISQL中借鉴来的。innerjoin(内连接)leftouterjoin(左外连接)rightouterjoin(右外连接)fulljoin(全连接,并不常用)语句innerjoin,leftouterjoin以及rightouterjoin可以简写。fromCatascatjoincat.mateasmateleftjoincat.kittensa

5、skitten还有,一个"fetch"连接允许仅仅使用一个选择语句就将相关联的对象或一组值的集合随着他们的父对象的初始化而被初始化,这种方法在使用到集合的情况下尤其有用,对于关联和集合来说,它有效的代替了映射文件中的外联接与延迟声明(lazydeclarations).查看第20.1节“抓取策略(Fetchingstrategies)”以获得等多的信息。fromCatascatinnerjoinfetchcat.mateleftjoinfetchcat.kittens一个fetch连接通常不需要被指定别名,因为相关联的对象不应当被用在where子句(或其它任何子句)中。同时,相关联的

6、对象并不在查询的结果中直接返回,但可以通过他们的父对象来访问到他们。注意fetch构造变量在使用了scroll()或iterate()函数的查询中是不能使用的。最后注意,使用fulljoinfetch与rightjoinfetch是没有意义的。如果你使用属性级别的延迟获取(lazyfetching)(这是通过重新编写字节码实现的),可以使用fetchallproperties来强制Hibernate立即取得那些原本需要延迟加载的属性(在第一个查询中)。fromDocumentfetchallpropertiesorderbynamefromDocumentdocfetchallpro

7、pertieswherelower(doc.name)like'%cats%'4.select子句select子句选择将哪些对象与属性返回到查询结果集中.考虑如下情况:selectmatefromCatascatinnerjoincat.mateasmate该语句将选择matesofotherCats。(其他猫的配偶)实际上,你可以更简洁的用以下的查询语句表达相同的含义:selectcat.matefromCatcat查询语句可以返回值为任何类型的属性,包

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。