// 'g.' preffix because of ERROR 1052 (23000): Column 'column_name' in where // clause is ambiguous // caused by the same name of columns in m_office and m_group tables private String getGroupExtraCriteria(final SearchParameters searchCriteria) { String extraCriteria = " and g.level_Id = " + GroupTypes.GROUP.getId(); String sqlSearch = searchCriteria.getSqlSearch(); if (sqlSearch != null) { sqlSearch = sqlSearch.replaceAll(" display_name ", " g.display_name "); sqlSearch = sqlSearch.replaceAll("display_name ", "g.display_name "); extraCriteria += " and (" + sqlSearch + ")"; } final Long officeId = searchCriteria.getOfficeId(); if (officeId != null) { extraCriteria += " and g.office_id = " + officeId; } final String externalId = searchCriteria.getExternalId(); if (externalId != null) { extraCriteria += " and g.external_id = " + ApiParameterHelper.sqlEncodeString(externalId); } final String name = searchCriteria.getName(); if (name != null) { extraCriteria += " and g.display_name like " + ApiParameterHelper.sqlEncodeString("%" + name + "%"); } final String hierarchy = searchCriteria.getHierarchy(); if (hierarchy != null) { extraCriteria += " and o.hierarchy like " + ApiParameterHelper.sqlEncodeString(hierarchy + "%"); } if (StringUtils.isNotBlank(extraCriteria)) { extraCriteria = extraCriteria.substring(4); } return extraCriteria; }