4

HQLのように JPQL でインデックス付き要素にアクセスすることは可能ですか:

select o from Order o where o.items[0].id = 1234

JPA 2仕様に関連するものを見つけることができませんでした.

ここではEclipseLink JPAをターゲットにしているので、EclipseLink ソリューションを思いついた場合でも問題ありませんが、JPQL 標準ソリューションが推奨されます。

4

2 に答える 2

5

INDEX 関数はそのトリックを実行する必要があります (実際にテストしたところ、実行されます)。

SELECT o
FROM Order o JOIN o.items i
WHERE i.id = 1234
AND INDEX(i) = 0

JPA 2.0 仕様 ( 4.6.17.2.2 Arithmetic Functions ) から:

INDEX 関数は、順序付きリスト内の引数の位置に対応する整数値を返します。INDEX 関数は、順序列が指定されている型を示す識別変数にのみ適用できます。

于 2010-05-27T21:53:43.090 に答える