有关Hibernate的HQL

04-04-27 MarkDong
现有一表,名称Record,记录了用户借阅图书的信息,结构简单表述如下

RecordID   主键
UserID      用户编码
BookID     图书编码
Time         借阅时间
<p>

Record, User和Book均有对应的持久化类并且没有问题,就不贴出映射文件及代码了。

现在希望统计出每本图书的借阅次数,并按借阅次数的递减排序。

我写的HQL如下,可以得出BookID及相应的借阅次数,但无法排序。

select Record.book, count(*) from Record as record group by BookID
<p>

这样查询出来是一个对象数组的列表,但不是按次数排序的。

如果我写成下面形式则报错

select Record.book, count(*) from Record as record group by BookID order by count(*)
<p>

但我在MySQL的客户端写SQL语句只要给count(*)指定一个别名就可以,SQL语句如下

select BookID, count(*) as times from Record group by BookID order by times;
<p>

我现在就不知道在HQL语句中,如何写HQL实现这样的查询

tiyi
2004-05-27 04:36
我记得当返回对象是多个时。

应该是二者的集合。很久没用,记不清了。你可以看中文手册找到答案

(Book) session.iterator(hql).next() ;

(Integer) session.iterator(hql).next();

猜你喜欢