protected QueryDescriptor makeEOSQLQueryDescriptor(ObjEntity root, Map plistMap) { SQLTemplateDescriptor descriptor = QueryDescriptor.sqlTemplateDescriptor(); descriptor.setRoot(root); Object fetchLimit = plistMap.get("fetchLimit"); if (fetchLimit != null) { try { if (fetchLimit instanceof Number) { descriptor.setProperty(QueryMetadata.FETCH_LIMIT_PROPERTY, String.valueOf(((Number) fetchLimit).intValue())); } else if (StringUtils.isNumeric(fetchLimit.toString())) { descriptor.setProperty(QueryMetadata.FETCH_LIMIT_PROPERTY, fetchLimit.toString()); } } catch (NumberFormatException nfex) { // ignoring... } } //query // TODO: doesn't work with Stored Procedures. Map hints = (Map) plistMap.get("hints"); if (hints != null && !hints.isEmpty()) { String sqlExpression = (String) hints.get("EOCustomQueryExpressionHintKey"); if (sqlExpression != null) { descriptor.setSql(sqlExpression); } } return descriptor; }