hibernate 三种常用的查询方式

本文介绍了Hibernate查询语言(HQL)的基本用法,包括参数化查询、分页查询和投影查询等常见场景。通过示例展示了如何利用HQL进行高效的数据检索。

本文主要学习hibernate的查询方式,HQL

之前的介绍中,我们都是使用get/load方式来查询对象的,这两种方式都是基于OID来查询的,但实际的应用中,我们使用最多的还是基于sql语句的查询,而且HQL是hibernate提供的最强大的查询方式,本文主要简单说一下三种最常见的查询方式。

–在查询语句中设定各种查询条件
–支持投影查询,即仅检索出对象的部分属性
–支持分页查询
–支持连接查询
–支持分组查询,允许使用having和group by关键字
–提供内置聚集函数,如sum()、min()和max()
–支持子查询,即嵌入式查询
–支持动态绑定参数

1、参数化查询,一种是命名参数查询,一种是直接动态绑定查询

	@Transactional
	public List findByParam(String sql, final Object... values) throws Exception {
		Query queryObject = getSession().createQuery(sql);
		if (values != null) {
			for (int i = 0; i < values.length; i++) {
				queryObject.setParameter(i, values[i]);
			}
		}
		return queryObject.list();
	}
	
	@Transactional
	public List findByNamedParam(String sql, final String[] paramNames, final Object[] values) throws Exception {
		Query queryObject = getSession().createQuery(sql);
		if (values != null) {
			for (int i = 0; i < values.length; i++) {
				queryObject.setParameter(paramNames[i], values[i]);
			}
		}
		return queryObject.list();
	}
2、分页查询

	@Transactional
	public List findByPage(String sql, int FirstResult, int MaxResults) throws Exception {
		Query queryObject = getSession().createQuery(sql);
		queryObject.setFirstResult(FirstResult);   
		queryObject.setMaxResults(MaxResults);
		return queryObject.list();
	}
3、投影查询,有关投影查询可以参考另外一篇文章,
hibernate 自定义字段查询映射为pojo对象的新思路



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值