私はJPA(JPQL)を使い慣れていないので、柔軟な比較計画でWHERE句を維持するための良い解決策はありません。 私は次のようにフォームのJPQLステートメントを実装したいと思います:(comparison_operator_placeholder)は、ユーザの入力に基づいて、実行時に選択されなければならないJPQL比較演算子のプレースホルダ
SELECT i FROM Item i
WHERE i.weight (comparison_operator_placeholder) :weight
AND i.height (comparison_operator_placeholder) :height;
(comparison_operator_placeholder):{ = | < | > | <= | >= }
。
直感的に私は、このような文法は存在しないことを認識していますが、各組み合わせに対してクエリを書く以外の方法があります。私は回避策を感謝します。
"ワイルドカード"(通常は%、 '_'または多分' * ')のコンセプトを比較演算子と混在させることに注意してください。これは誤解を招き、他のプログラマーに誤解されるかもしれません。あなたが実際に探しているのは「ダイナミック」だと思います。 – MWiesner
'WHERE'節で行いたい比較のタイプを決定するJavaコードロジックを表示できますか? –
あなたは "<>" btw –