hsql语言

Hsql查询语言

Hibernate 配备了一种非常强大的查询语言,这种语言看上去很像 SQL。但是不要被语法结构上的相似所迷惑,HQL 是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。

大小写敏感性问题

除了Java 类与属性的名称外,查询语句对大小写并不敏感。(SeleCT/select效果是一样的,Object/object效果不一样)

from子句

Hibernate 中最简单的查询语句的形式如下:
From object
通常我们不需要使用类的全限定名,因为 autoimport(自动引入)是缺省的情况

别名

from Object as obj   //关键字as是可选的

子句

from Formula, Parameter
子句中可以同时出现多个类,其查询结果是产生一个笛卡儿积或产生跨表的连接。

关联(Association)与连接(Join)

•inner join
•left outer join
•right outer join
•full join(全连接,并不常用)

from Cat as cat
join cat.mate as mate
left join cat.kittens as kitten
通过 HQL 的 with 关键字,你可以提供额外的 join 条件。
from Cat as cat
left join cat.kittens as kitten
with kitten.bodyWeight
> 10.0


如果你使用属性级别的延迟获取(lazy fetching)(这是通过重新编写字节码实现的),可以使用 fetch all properties 来强制 Hibernate 立即取得那些原本需要延迟加载的属性(在第一个查询中)。
from Document fetch all properties order by name

join 语法的形式


HQL 支持两种关联 join 的形式:implicit(隐式) 与 explicit(显式)。

隐式连接和显式连接查询后返回的结果不同。使用隐式连接查询返回的结果是多个被查询实体组成的集合。使用显式连接的结果分为两种:如果HQL语句中省略select关键字时,返回的结果也是集合,但集合元素是被查询持久化对象、所有被关联的持久化对象所组成的数组。如果没有省略select关键字,返回的结果同样是集合,集合中的元素是跟在select关键字后的持久化对象组成的数组。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值