Author: arminw Date: Wed Jan 30 18:19:49 2008 New Revision: 616989 URL: http://svn.apache.org/viewvc?rev=616989&view=rev Log: fix: count query in combination with IN-clause, add missing preprocess(PersistenceBrokerInternal aPb) methods
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/EnclosingReportQuery.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/ExistsCriteria.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/InCriterion.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/BrokerHelper.java Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/EnclosingReportQuery.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/EnclosingReportQuery.java?rev=616989&r1=616988&r2=616989&view=diff ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/EnclosingReportQuery.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/EnclosingReportQuery.java Wed Jan 30 18:19:49 2008 @@ -23,6 +23,8 @@ import java.util.HashMap; import java.util.Map; +import org.apache.ojb.broker.PersistenceBrokerInternal; + /** * Wrap a Query to support SQLSubSelect. * select count(*) from (select ... from ... where... ) @@ -41,6 +43,18 @@ { query = aQuery; sql = anSql; + } + + /** + * @see org.apache.ojb.broker.query.Query#preprocess(org.apache.ojb.broker.PersistenceBrokerInternal) + */ + public void preprocess(PersistenceBrokerInternal aPb) + { + // is this required??? + super.preprocess(aPb); + + // this one is!!!! + query.preprocess(aPb); } public Query getQuery() Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/ExistsCriteria.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/ExistsCriteria.java?rev=616989&r1=616988&r2=616989&view=diff ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/ExistsCriteria.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/ExistsCriteria.java Wed Jan 30 18:19:49 2008 @@ -1,5 +1,7 @@ package org.apache.ojb.broker.query; +import org.apache.ojb.broker.PersistenceBrokerInternal; + /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -40,6 +42,19 @@ { super("", subQuery); m_negative = negative; + } + + /** + * Preprocess the Criterion using a PersistenceBroker. + * + * @param aPb the PersistenceBroker + */ + public void preprocess(PersistenceBrokerInternal aPb) + { + if (getValue() instanceof Query) + { + ((Query)getValue()).preprocess(aPb); + } } /* Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/InCriterion.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/InCriterion.java?rev=616989&r1=616988&r2=616989&view=diff ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/InCriterion.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/InCriterion.java Wed Jan 30 18:19:49 2008 @@ -2,6 +2,8 @@ import java.util.Collection; +import org.apache.ojb.broker.PersistenceBrokerInternal; + /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -36,9 +38,22 @@ { super(anAttribute, aValue, aClause); } - - - /** + + /** + * Preprocess the Criterion using a PersistenceBroker. + * + * @param aPb the PersistenceBroker + */ + public void preprocess(PersistenceBrokerInternal aPb) + { + if (getValue() instanceof Query) + { + ((Query)getValue()).preprocess(aPb); + } + } + + + /** * @see org.apache.ojb.broker.query.SelectionCriteria#isBindable() * BRJ: empty Collection is bindable */ Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/BrokerHelper.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/BrokerHelper.java?rev=616989&r1=616988&r2=616989&view=diff ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/BrokerHelper.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/BrokerHelper.java Wed Jan 30 18:19:49 2008 @@ -708,7 +708,16 @@ */ private Query getReportQueryByCriteriaCount(ReportQueryByCriteria aQuery) { - ReportQueryByCriteria countQuery = (ReportQueryByCriteria) getQueryByCriteriaCount(aQuery); + Query result = getQueryByCriteriaCount(aQuery); + ReportQueryByCriteria countQuery; + if(result instanceof EnclosingReportQuery) + { + countQuery = (ReportQueryByCriteria) ((EnclosingReportQuery) result).getQuery(); + } + else + { + countQuery = (ReportQueryByCriteria) getQueryByCriteriaCount(aQuery); + } // BRJ: keep the original columns to build the Join countQuery.setJoinAttributes(aQuery.getAttributes()); @@ -720,7 +729,7 @@ countQuery.addGroupBy((FieldHelper) iter.next()); } - return countQuery; + return result; } /** --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]