10 個のフィールドがあり、結果を取得するために約 5 ~ 6 個のテーブルを含む検索画面があります。カスタム SQL クエリを作成し、値が存在する場合にのみ where 条件を追加しています。
誰かがこれが正しいアプローチなのか、それとも他のより良い方法なのかを提案できますか。
私の状況では、プラグインや追加の API を使用できません。
StringBuffer sqlQuery = new StringBuffer();
sqlQuery.append (" select member.* from member, customer, case where customer.status='A');
if(firstName != null)
sqlQuery.append("customer.firstName= :firstName");
if(caseid != null)
sqlQuery.append("case.caseid =:caseid");
SQLQuery queryObj = createSQLquery(sqlQuery.toString());
queryObj.list();
member 、customer、caseは実際のテーブルです。
アップデート
文字列バッファに where 条件を追加するとき
if(caseid != null)
sqlQuery.append(" and case.caseid =:caseid");
and when queryObj is formed I am doing it as
if(caseid != null)
queryObj.setString("caseid", caseid);
is there better way to add after queryObj (to combine both)?
前もって感謝します。