このSOの回答を見てください:
基本的には、order by 句がある場合に行の位置を取得します。これをHibernate基準で表現することは可能ですか?
これが私が持っているクエリです。私が本当に探しているのは、動的な where 句のパラメーターを設定するエレガントな方法です。
SELECT x.id,
x.position
FROM (SELECT dwq.id,
@rownum := @rownum + 1 AS position
FROM default_work_queue dwq
JOIN (SELECT @rownum := 0) r
WHERE dwq.type=4 *AND FOO=BAR*
ORDER BY dwq.description ASC) x
WHERE x.id=540;
つまり、一連の文字列操作を行わずに、0-n 個の余分な 'and foo=bar' をクエリの注目部分に追加できるようにしたいと考えています。