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