Webのシステムで、DBから一覧を取得する際、最大3つの検索条件をANDで渡して一覧から一部を抽出したいとします。
例えばa,b,cの3つの検索条件があったとして、
where hoge.a = :a and hoge.b = :b and hoge.c = :c
のようなHQLを書いて、ロジックからa,b,cに値を渡してやればAND条件で検索可能と思います。
しかし、必ずしも3つすべての検索条件が設定されない場合(例えばaとbだけ値がセットされ、cだけ値がセットされない)、上記のような書き方では対応できないのではと考えています。
このように、where句で条件指定を複数したいが、その指定の数が変わる場合、どんなHQLを発行すればいいのでしょうか。
HQLは分かりませんがSQLのように
(:c IS NULL OR hoge.c = :c)に書けば、C:NULLの時も
問題なく処理できます。ただHSLでこういう書き方ができるかか?
わからないのでなんともいえませんが。
SQLのパラメータクエリで、例えばaとbだけ値がセットされ、cだけ値がセットされないな場合は上記のようなSQLを使います。
HQLは分かりませんがSQLのように
(:c IS NULL OR hoge.c = :c)に書けば、C:NULLの時も
問題なく処理できます。ただHSLでこういう書き方ができるかか?
わからないのでなんともいえませんが。
SQLのパラメータクエリで、例えばaとbだけ値がセットされ、cだけ値がセットされないな場合は上記のようなSQLを使います。
ありがとうございます。試してみたらできました。
ありがとうございます。試してみたらできました。