フィルター オブジェクトのリストがあります: 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の組み合わせのコード例を教えてください。