我需要获得一个可以使用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实现这个功能吗?
答案 0 :(得分:0)
没有架构很难说,但你可以使用像
这样的东西SELECT COUNT(*) FROM testing ts
WHERE ts.score < $obj.score
我使用$表示你需要引用活动对象的任何Hibernate表示法。
答案 1 :(得分:0)
我找不到任何办法,所以我不得不改变我计算位置的方式。我现在正在取得最好的结果,并且正在用Java创建梯形图,而不是在SQL查询中。