我有一个过滤器对象列表:FilterVO
公共类FilterVO {
public paramName;
public String criteria;
public String value;
public String relation;
}
过滤器对象的大小和内容由最终用户通过 UI 选择:
我必须根据这个过滤器对象查询数据库:
例如:
filterVO1 = ["param1",">","value1",AND]
filterVO2 = ["param2","<","value2",OR]
filterVO3 = ["param3","like","%value3",AND]
filterVO4 = ["param4","=","value5",OR]
filterVO5 = ["param5",">","value6"]
您能否建议如何使用“AND”、“OR”的组合动态构建上述过滤器的 Criteria 对象。
我写了以下代码:
if (relation.equalsIgnoreCase("OR"))
{
disJunction.add(getRestriction(criteria, paramName, value));
maincriteria.add(disJunction);
} else if (relation.equalsIgnoreCase("AND"))
{
conJunction.add(getRestriction(criteria, paramName, value));
maincriteria.add(conJunction);
}
此代码不适用于 AND , OR 组合。它总是取 AND 条件。请给出 AND,OR 组合的示例代码。