人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Hibernate の HQL について質問です。

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を発行すればいいのでしょうか。

●質問者: tono5652
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:DB Hibernate hoge Web はと
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● KUROX
●65ポイント ベストアンサー

HQLは分かりませんがSQLのように

(:c IS NULL OR hoge.c = :c)に書けば、C:NULLの時も

問題なく処理できます。ただHSLでこういう書き方ができるかか?

わからないのでなんともいえませんが。

SQLのパラメータクエリで、例えばaとbだけ値がセットされ、cだけ値がセットされないな場合は上記のようなSQLを使います。

◎質問者からの返答

ありがとうございます。試してみたらできました。


2 ● lark_mild
●5ポイント

http://www.techscore.com/tech/Others/Hibernate/04.html

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ