開発者向けサポート

Java開発者向けライブラリでの実装(SearchConditionでの検索条件の指定方法)

ライブラリを使用したデータアクセスAPI、処理カスタマイズAPIの検索条件の指定方法について説明します。

検索条件を指定するときは以下のクラスを使用します。

  • jp.co.interfactory.ebisu.app.customize.SearchCondition(検索条件の指定に使用します)

1. 検索条件の指定方法

検索条件を指定する際はまず、SearchConditionを格納するListを作成してください。


// A=1
List<SearchCondition> query = new ArrayList<>();
SearchCondition.Equals equals = new SearchCondition.Equals("A","1");
query.add(equals);

2. 複数条件の指定方法

Listに複数のSearchConditionを格納することで複数条件を指定することができます。
特に明示せずにListに追加した場合は、AND条件となります。


// A=1 AND B=1
List<SearchCondition> query = new ArrayList<>();
SearchCondition.Equals equals1 = new SearchCondition.Equals("A","1");
SearchCondition.Equals equals2 = new SearchCondition.Equals("B","1");
query.add(equals1);
query.add(equals2);

また以下のように明示的にAND条件とOR条件を使い分けることができます


List<SearchCondition> query = new ArrayList<>();
SearchCondition.Equals equals1 = new SearchCondition.Equals("A","1");
SearchCondition.Equals equals2 = new SearchCondition.Equals("B","1");
SearchCondition.Equals equals3 = new SearchCondition.Equals("C","1");
// AND条件の指定
// B=1 AND C=1
SearchCondition.And and = new SearchCondition.And();
and.addOperand(equals2);
and.addOperand(equals3);
// OR条件の指定
// A=1 OR (B=1 AND C=1)
SearchCondition.Or or = new SearchCondition.Or();
or.addOperand(equals1);
or.addOperand(and);
query.add(or);

3. NOT条件の指定方法

SearchCondition.Notを用いることでNOT条件に格納されます。


List<SearchCondition> query = new ArrayList<>();
SearchCondition.Equals equals1 = new SearchCondition.Equals("A","1");
SearchCondition.Equals equals2 = new SearchCondition.Equals("B","1");
// NOT条件の指定
// NOT (A=1 AND B=1)
SearchCondition.Not not = new SearchCondition.Not();
not.addOperand(equals1);
not.addOperand(equals2);
query.add(not);

AND条件、OR条件と組み合わせた場合の例。


List<SearchCondition> query = new ArrayList<>();
SearchCondition.Equals equals1 = new SearchCondition.Equals("A","1");
SearchCondition.Equals equals2 = new SearchCondition.Equals("B","1");
SearchCondition.Equals equals3 = new SearchCondition.Equals("C","1");
// AND条件の指定
// B=1 AND C=1
SearchCondition.And and = new SearchCondition.And();
and.addOperand(equals2);
and.addOperand(equals3);
// NOT条件の指定
// NOT (A=1)
SearchCondition.Not not = new SearchCondition.Not();
not.addOperand(equals1);
// OR 条件の指定
// NOT (A=1) OR ( B=1 AND C=1)
SearchCondition.Or or = new SearchCondition.Or();
or.addOperand(not);
or.addOperand(and);
query.add(or);

3. 日付の比較方法

日付の比較を行う場合、SearchCondition.to_char_formatでフォーマットを指定します。


List<SearchCondition> query = new ArrayList<>();
String date = "2017/01/01";
// カラムの値が指定された値以上か判定します。
SearchCondition.MoreThanEquals mte = new SearchCondition.MoreThanEquals("A", date);
// 比較フォーマットの指定(YYYY/MM/DD)
// to_char(A, 'YYYY/MM/DD') >= '2017/01/01'
mte.to_char_format = SearchCondition.DATE_FORMAT;
query.add(mte);