7

をパラメーターとして受け取る JPQL という名前のクエリがListあります。INフレーズでパラメーターを使用しています:

...WHERE x.id IN :list

次のようなことをしたいのですが、構文では明らかにできません。

...WHERE :list IS EMPTY OR x.id IN :list

どちらもしません:

...WHERE SIZE(:list) = 0 OR x.id IN :list

私がやろうとしていることは、JPA 2.0 の名前付きクエリでは不可能ですか? 基準APIを介して、またはプレーンな古いJPQL文字列を使用してそれを行う方法を知っています。

4

1 に答える 1

-4

クエリで実行しようとしていることは意味がないようです。パラメータの状態を使用してクエリ結果を制限しようとしています。ただし、このパラメーターを選択したものと比較することはありません。

このクエリについて考えてください(意味がありません):

SELECT * FROM SOMETABLE WHERE :list IS EMPTY

したがって、2つの異なるクエリから選択する前に、:listが空かどうかを確認する必要があると思います。

:list空でない場合:...WHERE x.id IN :list

:list空の場合:(NO WHERE CLAUSE AT ALL)

于 2013-02-27T17:10:11.070 に答える