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 をランクとして使用することはできません。同様に、2 人の競技者が同じ総合タイムを持つことも可能です。
これをHibernateで機能させる方法はありますか?