public void setSelectionCriteria(Expression expression) { super.setSelectionCriteria(expression); if ((expression != null) && (defaultBuilder != null) && (defaultBuilder.getQueryClass() == null)){ // For flashback: Must make sure expression and defaultBuilder always in sync. ExpressionBuilder newBuilder = expression.getBuilder(); if (newBuilder != defaultBuilder) { if (hasAsOfClause() && getAsOfClause().isUniversal()) { newBuilder.asOf(defaultBuilder.getAsOfClause()); } defaultBuilder = newBuilder; } } }
/** * PUBLIC: * Set the Expression/where clause of the query. * The expression should be defined using the query's ExpressionBuilder. */ @Override public void setSelectionCriteria(Expression expression) { super.setSelectionCriteria(expression); if ((expression != null) && (this.defaultBuilder != null) && (this.defaultBuilder.getQueryClass() == null)){ // For flashback: Must make sure expression and defaultBuilder always in sync. ExpressionBuilder newBuilder = expression.getBuilder(); if (newBuilder != this.defaultBuilder) { if (hasAsOfClause() && getAsOfClause().isUniversal()) { newBuilder.asOf(this.defaultBuilder.getAsOfClause()); } this.defaultBuilder = newBuilder; } } }
/** * PUBLIC: * Set the Expression/where clause of the query. * The expression should be defined using the query's ExpressionBuilder. */ @Override public void setSelectionCriteria(Expression expression) { super.setSelectionCriteria(expression); if ((expression != null) && (this.defaultBuilder != null) && (this.defaultBuilder.getQueryClass() == null)){ // For flashback: Must make sure expression and defaultBuilder always in sync. ExpressionBuilder newBuilder = expression.getBuilder(); if (newBuilder != this.defaultBuilder) { if (hasAsOfClause() && getAsOfClause().isUniversal()) { newBuilder.asOf(this.defaultBuilder.getAsOfClause()); } this.defaultBuilder = newBuilder; } } }
query.setShouldMaintainCache(sourceQuery.shouldMaintainCache()); if (((ObjectLevelReadQuery)sourceQuery).hasAsOfClause()) { query.setAsOfClause(((ObjectLevelReadQuery)sourceQuery).getAsOfClause());
if (hasAsOfClause() && (getSession().getAsOfClause() == null)) { if (shouldMaintainCache()) { throw QueryException.historicalQueriesMustPreserveGlobalCache();
if (hasAsOfClause() && (getSession().getAsOfClause() == null)) { if (shouldMaintainCache()) { throw QueryException.historicalQueriesMustPreserveGlobalCache();
if (baseQuery.isObjectLevelReadQuery() && ((ObjectLevelReadQuery)baseQuery).hasAsOfClause()) { nestedQuery.setAsOfClause(((ObjectLevelReadQuery)baseQuery).getAsOfClause());
if (hasAsOfClause() && (getSession().getAsOfClause() == null)) { if (shouldMaintainCache()) { throw QueryException.historicalQueriesMustPreserveGlobalCache();
if ((getHistoryPolicy() != null) || (sourceQuery.getSession().getAsOfClause() != null) || ((sourceQuery.isObjectLevelReadQuery() && ((ObjectLevelReadQuery)sourceQuery).hasAsOfClause()) && (sourceQuery.shouldCascadeAllParts() || (sourceQuery.shouldCascadePrivateParts() && isPrivateOwned()) || (sourceQuery.shouldCascadeByMapping() && this.cascadeRefresh))) || extendingPessimisticLockScope) { targetQuery = (ReadQuery)targetQuery.clone();
if ((getHistoryPolicy() != null) || (sourceQuery.getSession().getAsOfClause() != null) || ((sourceQuery.isObjectLevelReadQuery() && ((ObjectLevelReadQuery)sourceQuery).hasAsOfClause()) && (sourceQuery.shouldCascadeAllParts() || (sourceQuery.shouldCascadePrivateParts() && isPrivateOwned()) || (sourceQuery.shouldCascadeByMapping() && this.cascadeRefresh))) || extendingPessimisticLockScope) { targetQuery = (ReadQuery)targetQuery.clone();
builder = new ExpressionBuilder(); if (query.hasAsOfClause()) { builder.asOf(query.getAsOfClause());
if (baseQuery.isObjectLevelReadQuery() && ((ObjectLevelReadQuery)baseQuery).hasAsOfClause()) { nestedQuery.setAsOfClause(((ObjectLevelReadQuery)baseQuery).getAsOfClause());
if (baseQuery.isObjectLevelReadQuery() && ((ObjectLevelReadQuery)baseQuery).hasAsOfClause()) { nestedQuery.setAsOfClause(((ObjectLevelReadQuery)baseQuery).getAsOfClause());
if ((getHistoryPolicy() != null) || (sourceQuery.getSession().getAsOfClause() != null) || ((sourceQuery.isObjectLevelReadQuery() && ((ObjectLevelReadQuery)sourceQuery).hasAsOfClause()) && (sourceQuery.shouldCascadeAllParts() || (sourceQuery.shouldCascadePrivateParts() && isPrivateOwned()) || (sourceQuery.shouldCascadeByMapping() && this.cascadeRefresh))) || extendingPessimisticLockScope) { targetQuery = (ReadQuery)targetQuery.clone();
if (((ObjectLevelReadQuery)sourceQuery).hasAsOfClause()) { targetQuery.setSelectionCriteria((Expression)targetQuery.getSelectionCriteria().clone()); ((ObjectLevelReadQuery)targetQuery).setAsOfClause(((ObjectLevelReadQuery)sourceQuery).getAsOfClause());
builder = new ExpressionBuilder(); if (query.hasAsOfClause()) { builder.asOf(query.getAsOfClause());
query.setShouldMaintainCache(sourceQuery.shouldMaintainCache()); if (((ObjectLevelReadQuery)sourceQuery).hasAsOfClause()) { query.setAsOfClause(((ObjectLevelReadQuery)sourceQuery).getAsOfClause());
query.setShouldMaintainCache(sourceQuery.shouldMaintainCache()); if (((ObjectLevelReadQuery)sourceQuery).hasAsOfClause()) { query.setAsOfClause(((ObjectLevelReadQuery)sourceQuery).getAsOfClause());
if (((ObjectLevelReadQuery)sourceQuery).hasAsOfClause()) { targetQuery.setSelectionCriteria((Expression)targetQuery.getSelectionCriteria().clone()); ((ObjectLevelReadQuery)targetQuery).setAsOfClause(((ObjectLevelReadQuery)sourceQuery).getAsOfClause());
if (((ObjectLevelReadQuery)sourceQuery).hasAsOfClause()) { targetQuery.setSelectionCriteria((Expression)targetQuery.getSelectionCriteria().clone()); ((ObjectLevelReadQuery)targetQuery).setAsOfClause(((ObjectLevelReadQuery)sourceQuery).getAsOfClause());