0

プロジェクト A に属し、過去 24 時間以内に変更されたすべての欠陥のリストを取得しようとしています。以下のコードを使用して、プロジェクトに属するすべての欠陥のリストを取得しました(プロジェクトは、プロジェクトの名前を含む文字列変数です)

        scope=defectType.getAttributeDefinition("Scope.Name");
        FilterTerm toDoTerm = Query.term(scope);
        toDoTerm.Equal(project);

もう 1 つ条件を追加して、過去 24 時間に変更された欠陥のみをリストします。
versionone api を確認しましたが、関連する Java ソース コード/サンプルまたは関数名が見つかりませんでした。

「and」や「or」などの条件を追加するにはどうすればよいですか?

4

1 に答える 1

2

GroupFilterTerm を使用して、次のようにフィルター (And または Or) を連結できます。

FilterTerm toDoTerm = new FilterTerm(nameAttribute);
toDoTerm.equal(project);
FilterTerm dateFilter = new FilterTerm(dateAttribute);
Calendar c = Calendar.getInstance();
dateFilter.lessOrEqual(c.getTime());

GroupFilterTerm groupFilter = new AndFilterTerm(toDoTerm, dateFilter);
Collection<IAttributeDefinition> attributesToQuery = new LinkedList<IAttributeDefinition>();
attributesToQuery.add(nameAttribute);
attributesToQuery.add(dateAttribute);
query = new Query(storyAsset.getOid().getMomentless(), true);
query.getSelection().addAll(attributesToQuery);
query.setFilter(groupFilter);

この例では、特定のプロジェクトにある欠陥を照会しており、欠陥の ChangeDate (dateAttribute) 値が今日以下の場合です。

比較を行う場合、Java が Date 変数を処理する方法を考慮する必要があります。

于 2014-11-07T13:29:31.040 に答える