使用HQL查询

HQL时完全面向对象的查询语言,因此可以支持继承、多态等特性。

HQL查询依赖于Query类,每个Query实例对应一个查询对象。使用HQL查询按如下步骤进行:

(1)获取Hibernate Session对象。

(2)编写HQL语句。

(3)以HQL语句作为参数,调用Session的createQuery方法创建查询对象。

(4)如果HQL语句包含参数,则调用Query的setXxx方法为参数赋值。

(5)调用Query对象的list等方法返回查询结果列表。

HQL的占位符既可使用英文问号(?),这与SQL语句中的占位符完全一样;也可使用名字的占位符,使用有名字的占位符时,应该在占位符名字前增加冒号(:),如下面HQL语句所示:

select distinct p from Person p join p.myEvenets where title=:eventTitle.

通过session的createQuery(hql)方法创建一个Query,Query对象使用SetXxx()方法为HQL参数赋值。Query的所有setXxx()方法都有两个版本,分别用于根据参数索引赋值和根据参数名字赋值,具体查阅Query接口的API说明。

Query对象可以连续多次为HQL参数赋值,因为Hibernate Query的setXxx()方法返回值是Query本身。因此,程序通过Session创建Query后,直接多次调用setXxx方法为HQL语句的参数赋值。

Query还包括两个方法:

(1)setFirstResult(int firstResult):设置返回的结果集从第几条记录开始。

(2)setMaxResults(int maxResults):设置本次查询返回的结果数目。

注意:HQL语句本身是不区分大小写的。也就是说,HQL语句的关键字、函数都是不区分大小写的。但HQL语句中所使用的包名、类名、实例名、属性名都是区分大小写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值