/** * INTERNAL: Generates the read all stored procedure for this mapping */ protected StoredProcedureDefinition generateOneToManyMappingReadProcedure(OneToManyMapping mapping) { ClassDescriptor targetDescriptor = mapping.getReferenceDescriptor(); ReadAllQuery readAllQuery = new ReadAllQuery(); readAllQuery.setDescriptor(targetDescriptor); readAllQuery.setReferenceClass(targetDescriptor.getJavaClass()); readAllQuery.setSelectionCriteria(mapping.getSelectionCriteria()); return generateOneToManyMappingProcedures(mapping, readAllQuery, mapping.getTargetForeignKeyToSourceKeys(), "R_1M_"); }
ReadAllQuery query = new ReadAllQuery(); query.setReferenceClass(Employee.class); query.setSelectionCriteria(new ExpressionBuilder.get("id").greaterThan(100)); // Set the JDBC fetch size query.setFetchSize(50); // Configure the query to return results as a ScrollableCursor query.useScrollableCursor(); // Execute the query ScrollableCursor cursor = (ScrollableCursor) session.executeQuery(query); // Iterate over the results while (cursor.hasNext()) { System.out.println(cursor.next().toString()); } cursor.close();
/** * INTERNAL: * Clone and prepare the selection query as a nested batch read query. * This is used for nested batch reading. */ public ReadQuery prepareNestedBatchQuery(ReadAllQuery query) { ReadAllQuery batchQuery = (ReadAllQuery)super.prepareNestedBatchQuery(query); if(this.listOrderField != null) { batchQuery.addAdditionalField(getListOrderFieldExpression(batchQuery.getExpressionBuilder())); } if (batchQuery.shouldPrepare()) { batchQuery.checkPrepare(query.getSession(), query.getTranslationRow()); } batchQuery.setSession(null); return batchQuery; }
private void initializeReadAllQuery() { ReadAllQuery query = new ReadAllQuery(); query.dontUseDistinct(); this.query = query; }
/** * This method is used to create a query using a EclipseLink Expression and * the return type. */ protected DatabaseQuery createQueryInternal(Expression expression, Class resultType) { ReadAllQuery query = new ReadAllQuery(resultType); query.setSelectionCriteria(expression); return query; }
/** * INTERNAL: * Certain key mappings favor different types of selection query. Return the appropriate * type of selectionQuery * @return */ @Override public ReadQuery buildSelectionQueryForDirectCollectionKeyMapping(ContainerPolicy containerPolicy){ ReadAllQuery query = new ReadAllQuery(); query.setReferenceClass(referenceClass); query.setDescriptor(getReferenceDescriptor()); query.setContainerPolicy(containerPolicy); return query; }
ReadAllQuery batchQuery = new ReadAllQuery(this.referenceClass, builder); batchQuery.setName(getAttributeName()); batchQuery.setDescriptor(getReferenceDescriptor()); batchQuery.setSession(query.getSession()); batchQuery.setShouldUseSerializedObjectPolicy(query.shouldUseSerializedObjectPolicy()); batchQuery.setShouldUseWrapperPolicy(false); if (query.shouldCascadeAllParts() || (query.shouldCascadePrivateParts() && isPrivateOwned()) || (query.shouldCascadeByMapping() && this.cascadeRefresh)) { batchQuery.setShouldRefreshIdentityMapResult(query.shouldRefreshIdentityMapResult()); batchQuery.setCascadePolicy(query.getCascadePolicy()); batchQuery.setShouldMaintainCache(query.shouldMaintainCache()); if (query.hasAsOfClause()) { batchQuery.setAsOfClause(query.getAsOfClause()); batchQuery.setShouldBindAllParameters(query.getShouldBindAllParameters()); batchQuery.setShouldPrepare(query.shouldPrepare()); batchQuery.setShouldOuterJoinSubclasses(query.shouldOuterJoinSubclasses()); batchQuery.setQueryId(query.getQueryId()); if (query.getSession().getAsOfClause() != null) { subBuilder.asOf(query.getSession().getAsOfClause()); } else if (batchQuery.getAsOfClause() == null) { subBuilder.asOf(AsOfClause.NO_CLAUSE); } else { subBuilder.asOf(batchQuery.getAsOfClause()); if (query.getSession().getAsOfClause() != null) {
ReadAllQuery batchQuery = new ReadAllQuery(); batchQuery.setReferenceClass(getReferenceClass()); batchQuery.setDescriptor(getReferenceDescriptor()); batchQuery.setSession(query.getSession()); batchQuery.setShouldUseWrapperPolicy(false); if (query.shouldCascadeAllParts() || (query.shouldCascadePrivateParts() && isPrivateOwned()) || (query.shouldCascadeByMapping() && this.cascadeRefresh)) { batchQuery.setShouldRefreshIdentityMapResult(query.shouldRefreshIdentityMapResult()); batchQuery.setCascadePolicy(query.getCascadePolicy()); batchQuery.setShouldMaintainCache(query.shouldMaintainCache()); if (query.hasAsOfClause()) { batchQuery.setAsOfClause(query.getAsOfClause()); batchQuery.setShouldBindAllParameters(query.getShouldBindAllParameters()); batchQuery.setShouldPrepare(query.shouldPrepare()); batchQuery.setShouldOuterJoinSubclasses(query.shouldOuterJoinSubclasses()); batchQuery.setQueryId(query.getQueryId()); ClassDescriptor descriptorToUse = query.getDescriptor(); if ((descriptorToUse != getDescriptor()) && (!descriptorToUse.getMappings().contains(this)) && (!getDescriptor().isAggregateDescriptor())) { descriptorToUse = getDescriptor(); ExpressionBuilder builder = batchQuery.getExpressionBuilder(); Expression backRef = builder.getManualQueryKey(getAttributeName() + "-back-ref", descriptorToUse); Expression twisted = backRef.twist(getSelectionCriteria(), builder); if (query.getSelectionCriteria() != null) {
ReadAllQuery query = new ReadAllQuery(); query.setReferenceClass(elementDescriptor.getJavaClass()); query.setIsExecutionClone(true); query.addArgument(ForeignReferenceMapping.QUERY_BATCH_PARAMETER); query.setSession(session); query.setSelectionCriteria(elementDescriptor.buildBatchCriteriaByPK(query.getExpressionBuilder(), query)); int pkCount = foreignKeyValues.size(); Collection<Object> temp = new ArrayList<Object>(); pkList.addAll(foreignKeyValues.subList(index, index+1000)); arguments.set(0, pkList); query.setArgumentValues(arguments); temp.addAll((Collection<Object>) session.executeQuery(query)); index += 1000; query.setArgumentValues(arguments);
if ((!isReportQuery()) && prepareFromCachedQuery()) { return; this.containerPolicy.prepare(this, getSession()); if (hasJoining() && isExpressionQuery()) { if (!hasOrderByExpressions()) { for (DatabaseField primaryKey : this.descriptor.getPrimaryKeyFields()) { addOrdering(getExpressionBuilder().getField(primaryKey)); prepareSelectAllRows(); if (!isReportQuery()) { prepareResultSetAccessOptimization();
/** * 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); }
ReadAllQuery query = new ReadAllQuery(referenceDescriptor.getJavaClass()); query.setIsExecutionClone(true); query.addArgument(ForeignReferenceMapping.QUERY_BATCH_PARAMETER); query.addArgumentValue(foreignKeyValues); query.setSession(session); query.setSelectionCriteria(referenceDescriptor.buildBatchCriteriaByPK(query.getExpressionBuilder(), query)); Collection<Object> temp = (Collection<Object>) session.executeQuery(query); for (Object element: temp){
/** * PUBLIC: * Read all of the instances of the class from the database matching the given expression. * This operation can be customized through using a ReadAllQuery. * * @see ReadAllQuery */ public Vector readAllObjects(Class domainClass, Expression expression) throws DatabaseException { ReadAllQuery query = new ReadAllQuery(); query.setReferenceClass(domainClass); query.setSelectionCriteria(expression); query.setIsExecutionClone(true); return (Vector)executeQuery(query); }
/** * PUBLIC: * Read all the instances of the class from the database returned through execution the Call string. * The Call can be an SQLCall or JPQLCall. * * example: session.readAllObjects(Employee.class, new SQLCall("SELECT * FROM EMPLOYEE")); * @see Call */ public Vector readAllObjects(Class referenceClass, Call aCall) throws DatabaseException { ReadAllQuery raq = new ReadAllQuery(); raq.setReferenceClass(referenceClass); raq.setCall(aCall); raq.setIsExecutionClone(true); return (Vector)executeQuery(raq); }
/** * PUBLIC: * Read all of the instances of the class from the database return through execution the SQL string. * The SQL string must be a valid SQL select statement or selecting stored procedure call. * This operation can be customized through using a ReadAllQuery. * Warning: Allowing an unverified SQL string to be passed into this * method makes your application vulnerable to SQL injection attacks. * * @see ReadAllQuery */ public Vector readAllObjects(Class domainClass, String sqlString) throws DatabaseException { ReadAllQuery query = new ReadAllQuery(); query.setReferenceClass(domainClass); query.setSQLString(sqlString); query.setIsExecutionClone(true); return (Vector)executeQuery(query); }
/** * INTERNAL: Generates the read all stored procedure for this descriptor */ protected StoredProcedureDefinition generateReadAllStoredProcedure(ClassDescriptor descriptor) { ReadAllQuery readAllQuery = new ReadAllQuery(); readAllQuery.setDescriptor(descriptor); readAllQuery.setReferenceClass(descriptor.getJavaClass()); return generateObjectStoredProcedure(readAllQuery, descriptor.getPrimaryKeyFields(), "RALL_"); }
/** * PUBLIC: * Read all of the instances of the class from the database. * This operation can be customized through using a ReadAllQuery, * or through also passing in a selection criteria. * * @see ReadAllQuery * @see #readAllObjects(Class, Expression) */ public Vector readAllObjects(Class domainClass) throws DatabaseException { ReadAllQuery query = new ReadAllQuery(); query.setIsExecutionClone(true); query.setReferenceClass(domainClass); return (Vector)executeQuery(query); }
/** * INTERNAL: * Add additional fields and check for history. */ protected void postPrepareNestedBatchQuery(ReadQuery batchQuery, ReadAllQuery query) { ReadAllQuery mappingBatchQuery = (ReadAllQuery)batchQuery; mappingBatchQuery.setShouldIncludeData(true); for (Enumeration relationFieldsEnum = getSourceRelationKeyFields().elements(); relationFieldsEnum.hasMoreElements();) { mappingBatchQuery.getAdditionalFields().add(mappingBatchQuery.getExpressionBuilder().getTable(getRelationTable()).getField((DatabaseField)relationFieldsEnum.nextElement())); } if (getHistoryPolicy() != null) { ExpressionBuilder builder = mappingBatchQuery.getExpressionBuilder(); Expression twisted = batchQuery.getSelectionCriteria(); if (query.getSession().getAsOfClause() != null) { builder.asOf(query.getSession().getAsOfClause()); } else if (builder.getAsOfClause() == null) { builder.asOf(AsOfClause.NO_CLAUSE); } twisted = twisted.and(getHistoryPolicy().additionalHistoryExpression(builder)); mappingBatchQuery.setSelectionCriteria(twisted); } }
ReadAllQuery readAllQuery = (ReadAllQuery)query; for (Expression orderbyExpression : readAllQuery.getOrderByExpressions()) { builderString = buildBuilderString(builderString, method, iteration, queryIdentifier); buildExpressionString(builderString, method, queryIdentifier, orderbyExpression, ".addOrdering("); for (Expression batchReadExp : readAllQuery.getBatchReadAttributeExpressions()) { builderString = buildBuilderString(builderString, method, iteration, queryIdentifier); buildExpressionString(builderString, method, queryIdentifier, batchReadExp, ".addBatchReadAttribute("); if (readAllQuery.getContainerPolicy().isCursoredStreamPolicy()) { method.addLine(queryIdentifier + ".useCursoredStream();"); if (readAllQuery.getContainerPolicy().isScrollableCursorPolicy()) { method.addLine(queryIdentifier + ".useScrollableCursor();"); if (readAllQuery.getContainerPolicy().isCollectionPolicy()) { String collectionClass = readAllQuery.getContainerPolicy().getContainerClassName(); if (!collectionClass.equals("java.util.Vector")) { method.addLine(queryIdentifier + ".useCollectionClass(" + collectionClass + ".class);");
/** * PUBLIC: * Order the query results by the object's attribute or query key name. */ public void addAscendingOrdering(String queryKeyName) { addOrdering(getExpressionBuilder().get(queryKeyName).ascending()); }