The following snippet will be helpful in setting up the mode of the query criteria in programmatic way.
public Boolean setAdvancedMode(){
QueryDescriptor descriptor =
(QueryDescriptor)evaluateEL
("#{bindings.SearchCriteriaQuery.queryDescriptor}");
descriptor.changeMode(QueryDescriptor.QueryMode.ADVANCED);
return true;
}
public Object evaluateEL(String el) {
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ExpressionFactory expressionFactory =
facesContext.getApplication().getExpressionFactory();
ValueExpression exp =
expressionFactory.createValueExpression(elContext, el,
Object.class);
return exp.getValue(elContext);
}