Show/Hide Toolbars

Searching for projects is similar to searching for other object types. The following example illustrates how to search among projects for the following criteria: a given project phase, and given main assignee (by their user name).

Code Snippet

protected ProjectRepository projectRepository;

public void searchProjects() throws Exception {

StringFieldCriterion fieldCriterion1 = new StringFieldCriterion();

fieldCriterion.setComparator(StringComparator.EQUALS_ENFORCE_CASE);

LegacySearchFieldPathExpression fieldPathExpression1 = new LegacySearchFieldPathExpression();

fieldPathExpression1.setSearchKeyPath("currentPhase.storedValue");

fieldCriterion1.setFieldPath(fieldPathExpression1);

//need clarification if unique key or name

//if unique key, then filtering for projects that are in phase, Closed

fieldCriterion.getValues().add("CLOS");

FieldSearchClause searchCriteria = new FieldSearchClause();

searchCriteria.setOperator(LogicOperator.AND);

searchCriteria.getCriteria().add(fieldCriterion1);

//the following section defines a second fieldCriterion item for

StringFieldCriterion fieldCriterion2 = new StringFieldCriterion();

fieldCriterion.setComparator(StringComparator.EQUALS);

LegacySearchFieldPathExpression fieldPathExpression2 = new LegacySearchFieldPathExpression();

fieldPathExpression2.setSearchKeyPath("mainAssignee.user.username");

fieldCriterion2.setFieldPath(fieldPathExpression2);

fieldCriterion.getValue().add("JohnDoe");

searchCriteria.getCriteria().add(fieldCriterion2);

List<Project> projects = projectRepository.readProjectsByCriteria(searchCriteria, 100,

getPropertiesToRead());

}

private List<String> getPropertiesToRead() {

List<String> properties = new List<String>();

properties.add("name");

properties.add("idNumber");

return properties;

}