Package com.webobjects.eocontrol

Examples of com.webobjects.eocontrol.EOFetchSpecification


        public Release defaultRelease(EOEditingContext ec) {
            EOQualifier qualifier = new EOKeyValueQualifier(Key.IS_OPEN, EOQualifier.QualifierOperatorEqual, Boolean.TRUE);
            NSArray sorting = new NSArray(new Object[]{
                    EOSortOrdering.sortOrderingWithKey(Key.NAME, EOSortOrdering.CompareDescending)
            });
            EOFetchSpecification fs = new EOFetchSpecification(entityName(), qualifier, sorting);
            return (Release) ec.objectsWithFetchSpecification(fs).lastObject();
        }
View Full Code Here


  public static NSArray<Person> fetchAllPersons(EOEditingContext editingContext, NSArray<EOSortOrdering> sortOrderings) {
    return _Person.fetchPersons(editingContext, null, sortOrderings);
  }

  public static NSArray<Person> fetchPersons(EOEditingContext editingContext, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) {
    EOFetchSpecification fetchSpec = new EOFetchSpecification(_Person.ENTITY_NAME, qualifier, sortOrderings);
    fetchSpec.setIsDeep(true);
    NSArray<Person> eoObjects = (NSArray<Person>)editingContext.objectsWithFetchSpecification(fetchSpec);
    return eoObjects;
  }
View Full Code Here

      objEntity.addRelationship(objRelationship);
    }
  }

  private void convertFetchSpecification(EOEntity entity, DataMap dataMap, String fetchSpecName) {
    EOFetchSpecification fetchSpec = entity.fetchSpecificationNamed(fetchSpecName);

    SelectQuery query = new SelectQuery(dataMap.getObjEntity(entity.name()));
    query.setName(fetchSpecName);

    query.setDistinct(fetchSpec.usesDistinct());
    query.setFetchingDataRows(fetchSpec.fetchesRawRows());
   
    String qualString = fetchSpec.qualifier().toString();
    qualString = qualString.replace(" caseinsensitivelike ", " likeIgnoreCase ");
    qualString = qualString.replace(" caseInsensitiveLike ", " likeIgnoreCase ");
    qualString = qualString.replace(" AND ", " and ");
    qualString = qualString.replace(" OR ", " or ");
    if (qualString.contains(" like ") || qualString.contains(" likeIgnoreCase ")) {
      qualString = qualString.replace("*", "%");
    }
   
    try {
      query.setQualifier(Expression.fromString(qualString));
    } catch (Exception e) {
      System.out.println("unable to parse qualifier for fetchSpec '" + fetchSpecName + "'. qual=" + qualString + "\n" + e.getMessage());
    }
    query.setFetchLimit(fetchSpec.fetchLimit());
    //query.setResolvingInherited(fetchSpec.isDeep());
    query.setStatementFetchSize(fetchSpec.fetchLimit());
   
    for (String  keyPath : fetchSpec.prefetchingRelationshipKeyPaths()) {
      query.addPrefetch(keyPath);
    }
   
    for (EOSortOrdering sortOrdering : fetchSpec.sortOrderings()) {
      SortOrder order = SortOrder.ASCENDING;
      if (sortOrdering.selector().equals(EOSortOrdering.CompareCaseInsensitiveAscending)) {
        order = SortOrder.ASCENDING_INSENSITIVE;
      } else if (sortOrdering.selector().equals(EOSortOrdering.CompareCaseInsensitiveDescending)) {
        order = SortOrder.DESCENDING_INSENSITIVE;
View Full Code Here

    String sql;
    if (spec.hints() == null || spec.hints().isEmpty() || spec.hints().valueForKey(EODatabaseContext.CustomQueryExpressionHintKey) == null) {
      // no hints
      if (spec.fetchLimit() > 0 || spec.sortOrderings() != null) {
        boolean usesDistinct = spec.usesDistinct();
        spec = new EOFetchSpecification(spec.entityName(), spec.qualifier(), null);
        spec.setUsesDistinct(usesDistinct);
      }

      EOSQLExpression sqlExpression = sqlExpressionForFetchSpecification(ec, spec, 0, -1);
      String statement = sqlExpression.statement();
View Full Code Here

        if (wrongParamEntity != null) {
          fetchSpec = entity;
      entity = wrongParamEntity.name();
      log.error("filteredArrayWithEntityFetchSpecification Calling conventions have changed from fetchSpec, entity to entity, fetchSpec");
    }
        EOFetchSpecification spec = EOFetchSpecification.fetchSpecificationNamed(fetchSpec, entity);
        NSArray<EOSortOrdering> sortOrderings;
        NSArray<T> result;
        EOQualifier qualifier;

        if (bindings != null) {
            spec = spec.fetchSpecificationWithQualifierBindings(bindings);
        }

        result = new NSArray<T>(array);

        if ((qualifier = spec.qualifier()) != null) {
            result = EOQualifier.filteredArrayWithQualifier(result, qualifier);
        }

        if ((sortOrderings = spec.sortOrderings()) != null) {
            result = EOSortOrdering.sortedArrayUsingKeyOrderArray(result,sortOrderings);
        }

        return result;
    }
View Full Code Here

            NSArray primaryKeysToFetch = primaryKeys.subarrayWithRange(range);

            log.debug("Of primaryKey count: " + primaryKeys.count() + " fetching range: " + range + " which is: " + primaryKeysToFetch.count());

            ERXInQualifier qual = new ERXInQualifier(primaryKeyAttributeName, primaryKeysToFetch);
            EOFetchSpecification batchFS = new EOFetchSpecification(fetchSpecification.entityName(), qual, fetchSpecification.sortOrderings());
            if (fetchSpecification.prefetchingRelationshipKeyPaths() != null) {
              batchFS.setPrefetchingRelationshipKeyPaths(fetchSpecification.prefetchingRelationshipKeyPaths());
            }
            batchFS.setRefreshesRefetchedObjects(fetchSpecification.refreshesRefetchedObjects());
            batchFS.setRawRowKeyPaths(fetchSpecification.rawRowKeyPaths());
            nextBatch = ec.objectsWithFetchSpecification(batchFS);

            if (log.isDebugEnabled()) {
                log.debug("Actually fetched: " + nextBatch.count() + " with fetch specification: " + batchFS);
                if (primaryKeysToFetch.count() > nextBatch.count()) {
View Full Code Here

        }
        return nextBatch != null ? nextBatch : NSArray.EmptyArray;
    }

    protected EOFetchSpecification batchFetchSpecificationForQualifier(EOQualifier qualifier) {
        EOFetchSpecification fetchSpec = (EOFetchSpecification)fetchSpecification.clone();
        fetchSpec.setQualifier(qualifier);
        fetchSpec.setRequiresAllQualifierBindingVariables(false);
        fetchSpec.setLocksObjects(false);
        fetchSpec.setPromptsAfterFetchLimit(false);
        return fetchSpec;
    }
View Full Code Here

            EOEntity entity = EOUtilities.entityNamed(editingContext(), fetchSpecification.entityName());

            if (entity.primaryKeyAttributes().count() > 1)
                throw new RuntimeException("ERXFetchSpecificationBatchIterator: Currently only single primary key entities are supported.");

            EOFetchSpecification pkFetchSpec = ERXEOControlUtilities.primaryKeyFetchSpecificationForEntity(editingContext(),
                                                                                                      fetchSpecification.entityName(),
                                                                                                      fetchSpecification.qualifier(),
                                                                                                      fetchSpecification.sortOrderings(),
                                                                                                      null);
            pkFetchSpec.setFetchLimit(fetchSpecification.fetchLimit());
            pkFetchSpec.setUsesDistinct(fetchSpecification.usesDistinct());
            boolean performDistinctInMemory = ERXSQLHelper.newSQLHelper(entity).shouldPerformDistinctInMemory(pkFetchSpec);
            if (performDistinctInMemory) {
              pkFetchSpec.setUsesDistinct(false);
            }
            log.debug("Fetching primary keys.");
            NSArray primaryKeyDictionaries = editingContext().objectsWithFetchSpecification(pkFetchSpec);

            String pkAttributeName = entity.primaryKeyAttributes().lastObject().name();
View Full Code Here

      sb.append(e.sqlStringForAttribute(pk));
    }
    sb.append(" IN ( ");
    EOEntity entity = entityName == null ? e.entity() : e.entity().model().modelGroup().entityNamed(entityName);

    EOFetchSpecification fs = new EOFetchSpecification(entity.name(), qualifier, null, false, true, null);

    if (qualifier != null) {
      qualifier = EOQualifierSQLGeneration.Support._schemaBasedQualifierWithRootEntity(qualifier, entity);
    }
    if (qualifier != fs.qualifier()) {
      fs.setQualifier(qualifier);
    }

    // ASSUME: This makes a few assumptions, if anyone can figure out a fool
    // proof way that would be nice to get the model
    // Note you can't use:
View Full Code Here

     * @see er.extensions.ERXEnterpriseObject#refetchObjectFromDBinEditingContext(com.webobjects.eocontrol.EOEditingContext)
     */
    public ERXEnterpriseObject refetchObjectFromDBinEditingContext(EOEditingContext ec){
        EOEntity entity = ERXEOAccessUtilities.entityNamed(ec, entityName());
        EOQualifier qual = entity.qualifierForPrimaryKey(primaryKeyDictionary(false));
        EOFetchSpecification fetchSpec = new EOFetchSpecification(entityName(), qual, null);
        fetchSpec.setRefreshesRefetchedObjects(true);
        NSArray results = ec.objectsWithFetchSpecification(fetchSpec);
        ERXEnterpriseObject freshObject = null;
        if(results.count()>0){
            freshObject = (ERXEnterpriseObject)results.objectAtIndex(0);
        }
View Full Code Here

TOP

Related Classes of com.webobjects.eocontrol.EOFetchSpecification

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.