/** * INTERNAL * Adjust the reference class of the passed query if necessary * * Need to test this for Employee, employee.getAddress(), report query */ public void adjustReferenceClassForQuery(DatabaseQuery theQuery, GenerationContext generationContext) { Class referenceClass = getReferenceClass(theQuery, generationContext); if ((referenceClass != null) && (referenceClass != theQuery.getReferenceClass())) { if (theQuery.isObjectLevelReadQuery()) { // The referenceClass needs to be changed. // This should only happen in an ejbSelect... ((ObjectLevelReadQuery)theQuery).setReferenceClass(referenceClass); generationContext.setBaseQueryClass(referenceClass); ((ObjectLevelReadQuery)theQuery).changeDescriptor(generationContext.getSession()); } else if (theQuery.isUpdateAllQuery()) { ((UpdateAllQuery)theQuery).setReferenceClass(referenceClass); } else if (theQuery.isDeleteAllQuery()) { ((DeleteAllQuery)theQuery).setReferenceClass(referenceClass); } } }
/** * INTERNAL * Adjust the reference class of the passed query if necessary * * Need to test this for Employee, employee.getAddress(), report query */ public void adjustReferenceClassForQuery(DatabaseQuery theQuery, GenerationContext generationContext) { Class referenceClass = getReferenceClass(theQuery, generationContext); if ((referenceClass != null) && (referenceClass != theQuery.getReferenceClass())) { if (theQuery.isObjectLevelReadQuery()) { // The referenceClass needs to be changed. // This should only happen in an ejbSelect... ((ObjectLevelReadQuery)theQuery).setReferenceClass(referenceClass); generationContext.setBaseQueryClass(referenceClass); ((ObjectLevelReadQuery)theQuery).changeDescriptor(generationContext.getSession()); } else if (theQuery.isUpdateAllQuery()) { ((UpdateAllQuery)theQuery).setReferenceClass(referenceClass); } else if (theQuery.isDeleteAllQuery()) { ((DeleteAllQuery)theQuery).setReferenceClass(referenceClass); } } }
/** * INTERNAL * Adjust the reference class of the passed query if necessary * * Need to test this for Employee, employee.getAddress(), report query */ public void adjustReferenceClassForQuery(DatabaseQuery theQuery, GenerationContext generationContext) { Class referenceClass = getReferenceClass(theQuery, generationContext); if ((referenceClass != null) && (referenceClass != theQuery.getReferenceClass())) { if (theQuery.isObjectLevelReadQuery()) { // The referenceClass needs to be changed. // This should only happen in an ejbSelect... ((ObjectLevelReadQuery)theQuery).setReferenceClass(referenceClass); generationContext.setBaseQueryClass(referenceClass); ((ObjectLevelReadQuery)theQuery).changeDescriptor(generationContext.getSession()); } else if (theQuery.isUpdateAllQuery()) { ((UpdateAllQuery)theQuery).setReferenceClass(referenceClass); } else if (theQuery.isDeleteAllQuery()) { ((DeleteAllQuery)theQuery).setReferenceClass(referenceClass); } } }
void visitAbstractFromClause(AbstractFromClause expression) { // Set the ExpressionBuilder Expression baseExpression = queryContext.getBaseExpression(); ExpressionBuilder expressionBuilder = baseExpression.getBuilder(); query.setExpressionBuilder(expressionBuilder); // Set the reference class if it's not set if (query.getReferenceClass() == null) { query.setReferenceClass(expressionBuilder.getQueryClass()); query.changeDescriptor(queryContext.getSession()); } // Add join expressions to the query (but not the join fetch expressions) JoinVisitor visitor = new JoinVisitor(); expression.accept(visitor); // Visit the AS OF clause if (expression.hasAsOfClause()) { expression.getAsOfClause().accept(this); } // Visit the hierarchical clause if (expression.hasHierarchicalQueryClause()) { expression.getHierarchicalQueryClause().accept(this); } }
void visitAbstractFromClause(AbstractFromClause expression) { // Set the ExpressionBuilder Expression baseExpression = queryContext.getBaseExpression(); ExpressionBuilder expressionBuilder = baseExpression.getBuilder(); query.setExpressionBuilder(expressionBuilder); // Set the reference class if it's not set if (query.getReferenceClass() == null) { query.setReferenceClass(expressionBuilder.getQueryClass()); query.changeDescriptor(queryContext.getSession()); } // Add join expressions to the query (but not the join fetch expressions) JoinVisitor visitor = new JoinVisitor(); expression.accept(visitor); // Visit the AS OF clause if (expression.hasAsOfClause()) { expression.getAsOfClause().accept(this); } // Visit the hierarchical clause if (expression.hasHierarchicalQueryClause()) { expression.getHierarchicalQueryClause().accept(this); } }
theQuery.changeDescriptor(generationContext.getSession()); generationContext.setBaseQueryClass(baseClass);
theQuery.changeDescriptor(generationContext.getSession()); generationContext.setBaseQueryClass(baseClass);
theQuery.changeDescriptor(generationContext.getSession()); generationContext.setBaseQueryClass(baseClass);