我有一个搜索屏幕,它有 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();
其中成员、客户、案例是实际表格。
更新
当我将 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)?
提前致谢。