Hibernate在结果集中获取行的位置

时间:2012-08-14 16:16:13

标签: java mysql sql hibernate

我需要获得一个可以使用Hibernate运行的SQL的等价物。由于像@。

这样的特殊字符,它无法正常工作
SELECT place from (select @curRow := @curRow + 1 AS place, time, id FROM `testing`.`competitor` JOIN (SELECT @curRow := 0) r order by time) competitorList where competitorList.id=4;

我的申请是管理竞赛的结果。以上查询是针对特定竞争对手进行选择的,根据他/她的总时间进行选择。

为简单起见,我只列出COMPETITOR表结构(仅列出相关字段)。我的实际查询涉及一些连接,但它们与问题无关:

CREATE TABLE competitor {
    id INT,
    name VARCHAR,
    time INT
}

请注意,竞争对手尚未按时间排序,因此,ID不能用作排名。同样,有两个竞争对手可能有相同的总时间。

知道如何使用Hibernate实现这个功能吗?

2 个答案:

答案 0 :(得分:0)

没有架构很难说,但你可以使用像

这样的东西
SELECT COUNT(*) FROM testing ts 
WHERE ts.score < $obj.score

我使用$表示你需要引用活动对象的任何Hibernate表示法。

答案 1 :(得分:0)

我找不到任何办法,所以我不得不改变我计算位置的方式。我现在正在取得最好的结果,并且正在用Java创建梯形图,而不是在SQL查询中。