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

最佳答案

没有模式很难说,但是您可以使用类似

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


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

07-24 19:58