当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

Hibernate HQL查询简介[Java编程]

赞助商链接



  本文“Hibernate HQL查询简介[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

传统的SQL语言采取的是构造化的查询办法,而这种办法关于查询以对象情势存在的数据却无能为力.幸运的是,Hibernate为我们供应了一种语法近似于SQL的语言,Hibernate查询语言(HQL),和SQL差别的是,HQL是一种面向对象的查询语言,它可以查询以对象情势存在的数据.因此,本文就HQL若何工作以及若何利用HQL展开了深化的谈论.

SQL本身是非常强盛的.当SQL的这种强盛和处理面向对象数据的本领相结合时,就产生了HQL.和SQL一样,HQL供应了丰富的查询功效,如投影查询、聚合函数、分组和约束.任何复杂的SQL都可以映射成HQL.

本文的第一部份将谈论HQL的简单用法.第二部份将谈论在HQL中若何按照上下文关系举行查询.在第三部份将以一个例子来阐明如安在实际利用中利用HQL.

进入HQL世界

一个ORM框架是成立在面向对象的底子上的.最好的例子是Hibernate若何供应类SQL查询.固然HQL的语法近似于SQL,但实际上它的查询目标是对象.HQL拥有面向对象语言的全部的特点,这此中包含多态、担当和组合.这就相当于一个面向对象的SQL,为了供应更强盛的功效,HQL还供应了很多的查询函数.这些函数可以被分为四类:

1.投影函数

2.约束函数

3.聚合函数

4.分组函数

利用HQL可以成立简单的查询,也可以成立更复杂的查询.在本文中并不谈论那些非常复杂的查询,如含有子查询和很多衔接的查询.本文只谈论衔接两个表的查询.目前让我们开始接近HQL吧!

投影

如谓投影,就是一个可以拜候的对象或对象的属性.在HQL中,可以利用from和select子句来完成这个工作.

from子句返回指定的类的全部实例.如from Order将返回Order类的全部实例.换句话说,以上的查询相当于以下的SQL语句:

select * from order

from 是最简单的查询子句.from背面可以跟一个或多个类名(类名也可以带有别名).为了得到Order和Product的全部实例,可以利用以下的查询:

from Order, Product

和类名一样,别名也可以在from后利用,以下代码如示:

from Order as o, Product p

当查询很复杂时,加入别名可以削减语句的长度.我们可以看看以下的SQL语句:

select o.*, p.* from order o, product p where o.order_id = p.order_id

我们可以很简单看出,上面的查询是一对多的关系.在HQL中相当于一个类中包含多个别的类的实例.因此,以上的SQL写成HQL就是:

from Order as o inner join o.products as product

目前让我们考虑别的一个从表中得到指定属性的情形.这就是最常用的select子句.这在HQL中的工作方法和SQL中一样.而在HQL中,假如只是想得到类的属性的话,select语句是最后的挑选.以上的SQL可以利用select子句改成以下的HQL语句:

select product from Order as o inner join o.products as product

以上的HQL语句将返回Order中的全部Products实例.假如要得到对象的某一个属性,可以将HQL语句写成以下的情势:

select product.name from Order as o inner join o.products as product

假如要得到多个对象的属性,可以将HQL语句写成以下情势:

select o.id, product.name from Order as o inner join o.products as product

接下来,我们将进入下一个议题.假定我们需求按照某些条件得到数据.那么以上所述的HQL语句将无法满意需求.为了到达这一目的,我们就要用到下面将要谈论的约束子句.


  以上是“Hibernate HQL查询简介[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 在Hibernate里面动态切换SChema实现访谒差别的数据库的几种办法
  • Hibernate 3新增XML关系长期性介绍
  • Hibernate配置文件在单元测试中的操纵
  • 在Hibernate中动态切换Schema
  • hibernate annoation (八 关联映射)
  • hibernate annoation (九 cascading)
  • <b>hibernate annoation (十 映射查询)</b>
  • hibernate annoation(十一 缓存Ehcache 采纳annoation)
  • Hibernate:操作配置文件生成数据库
  • hibernate annoation (一 加载)
  • hibernate annoation (二 成立表)
  • <b>hibernate annoation (三 id生成器)</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .