0

我正在寻找属于项目 A 并且在过去 24 小时内已修改的所有缺陷的列表。我使用下面给出的代码来检索属于项目的所有缺陷的列表(项目是一个包含项目名称的字符串变量)

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

现在我想再添加一个条件,仅列出过去 24 小时内已更改的那些缺陷。
我检查了 versionone api,但找不到任何相关的 java 源代码/示例或函数名称。

如何添加“和”或“或”等条件?

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);

在此示例中,我正在查询特定项目中的缺陷,并且缺陷更改日期 (dateAttribute) 值小于或等于今天。

在进行比较时,您需要考虑 Java 如何处理 Date 变量。

于 2014-11-07T13:29:31.040 回答