/** * INTERNAL: */ protected void addSelectionQuery(ForeignReferenceMapping cloneMapping, ForeignReferenceMapping sourceMapping, AbstractSession session) { // Set the new reference class cloneMapping.setReferenceClass(getDescriptor().getJavaClass()); cloneMapping.setReferenceClassName(getDescriptor().getJavaClassName()); // Force the selection criteria to be re-built. cloneMapping.setForceInitializationOfSelectionCriteria(true); // Now initialize the mapping cloneMapping.initialize(session); // The selection query should be initialized with all the right // goodies now, cache it for quick retrieval. ObjectLevelReadQuery selectionQuery = (ObjectLevelReadQuery) cloneMapping.getSelectionQuery(); selectionQuery.getExpressionBuilder().setQueryClassAndDescriptor(descriptor.getJavaClass(), descriptor); // By default its source mapping will be the cloned mapping, we // need to set the actual source mapping so that we can look it // back up correctly. selectionQuery.setSourceMapping(sourceMapping); // Cache the selection query for this source mapping. selectionQueriesForAllObjects.put(sourceMapping, selectionQuery); }
concreteQuery.getExpressionBuilder().setQueryClassAndDescriptor(javaClass, this.descriptor);
builder.setQueryClassAndDescriptor(descriptor.getJavaClass(), descriptor);
concreteQuery.getExpressionBuilder().setQueryClassAndDescriptor(javaClass, this.descriptor);
/** * INTERNAL: * Select all objects for a concrete descriptor. */ protected Object selectAllObjects(ReadAllQuery query) { ReadAllQuery concreteQuery = (ReadAllQuery) query.deepClone(); concreteQuery.setReferenceClass(descriptor.getJavaClass()); concreteQuery.setDescriptor(descriptor); // Avoid cloning the query again ... concreteQuery.setIsExecutionClone(true); concreteQuery.getExpressionBuilder().setQueryClassAndDescriptor(descriptor.getJavaClass(), descriptor); // Update the selection criteria if needed as well and don't lose // the translation row. if (concreteQuery.getQueryMechanism().getSelectionCriteria() != null) { //make sure query builder is used for the selection criteria as deepClone will create //two separate builders. concreteQuery.setSelectionCriteria(concreteQuery.getQueryMechanism().getSelectionCriteria().rebuildOn(concreteQuery.getExpressionBuilder())); return query.getSession().executeQuery(concreteQuery, query.getTranslationRow()); } return query.getSession().executeQuery(concreteQuery); }
builder.setQueryClassAndDescriptor(descriptor.getJavaClass(), descriptor);
builder.setQueryClassAndDescriptor(descriptor.getJavaClass(), descriptor);
subBuilder.setQueryClassAndDescriptor(descriptorToUse.getJavaClass(), descriptorToUse); ReportQuery subQuery = new ReportQuery(descriptorToUse.getJavaClass(), subBuilder); subQuery.setDescriptor(descriptorToUse);
subBuilder.setQueryClassAndDescriptor(descriptorToUse.getJavaClass(), descriptorToUse); ReportQuery subQuery = new ReportQuery(descriptorToUse.getJavaClass(), subBuilder); subQuery.setDescriptor(descriptorToUse);
builder.setQueryClassAndDescriptor(this.referenceClass, getReferenceDescriptor()); ReadAllQuery batchQuery = new ReadAllQuery(this.referenceClass, builder); batchQuery.setName(getAttributeName()); subBuilder.setQueryClassAndDescriptor(descriptorToUse.getJavaClass(), descriptorToUse); ReportQuery subQuery = new ReportQuery(descriptorToUse.getJavaClass(), subBuilder); subQuery.setDescriptor(descriptorToUse);
builder.setQueryClassAndDescriptor(this.referenceClass, getReferenceDescriptor()); ReadAllQuery batchQuery = new ReadAllQuery(this.referenceClass, builder); batchQuery.setName(getAttributeName()); subBuilder.setQueryClassAndDescriptor(descriptorToUse.getJavaClass(), descriptorToUse); ReportQuery subQuery = new ReportQuery(descriptorToUse.getJavaClass(), subBuilder); subQuery.setDescriptor(descriptorToUse);