我希望检索属于项目A且在过去24小时内已修改的所有缺陷的列表。我使用下面给出的代码来检索属于项目的所有缺陷的列表(项目是一个包含项目名称的字符串变量)
scope=defectType.getAttributeDefinition("Scope.Name");
FilterTerm toDoTerm = Query.term(scope);
toDoTerm.Equal(project);
现在我想再添加一个条件,仅列出过去24小时内已更改的缺陷 我检查了versionone api但找不到任何相关的java源代码/示例或函数名称。
我如何添加"和"等条件?或"或" ?
答案 0 :(得分: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变量。