HQL查询的聚集函数与多态查询



HQL查询的聚集函数与多态查询。HQL支持的聚集函数与SQL的完全相同:avg,count,max,min,sum。

实例如下的HQL语句

select count(*) from Person

select max(p.page) from Person as p

select子句还支持字符串连接符、算术连接符,以及SQL函数。例如:

select p.name||”"||p.address from Person as p

select子句也支持使用distinct和all关键字,此时的效果与SQL的效果完全相同。


HQL多态查询介绍

HQL语句被设计成能够理解多态查询,from后跟持久化类名,不仅会查询出该持久化类的全部实例,还会查询出该类的子类的全部实例。

如下面的查询语句:from Person as p

如果Named接口有多个持久化实现类,下面的语句将返回这些持久化类的全部实例。

如下面的查询语句:from Named as n

上面最后一条查询,需要多个SQL SELECT 语句,因此无法使用order by子句对结果集排序,从而不允许对这些查询结果使用Query.scroll()方法。