1

我需要得到一个可以使用 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 进行这项工作吗?

4

2 回答 2

0

没有模式很难说,但你可以使用类似的东西

SELECT COUNT(*) FROM testing ts 
WHERE ts.score < $obj.score

我使用 $ 代表您需要引用活动对象的任何 Hibernate 符号。

于 2012-08-14T18:23:00.630 回答
0

我找不到任何方法来做到这一点,所以我不得不改变我计算位置的方式。我现在正在获取最佳结果,并在 Java 中创建梯子,而不是在 SQL 查询中。

于 2013-02-12T02:51:24.483 回答