Return-Path: Delivered-To: apmail-db-ojb-dev-archive@www.apache.org Received: (qmail 63938 invoked from network); 8 Jan 2006 12:40:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 8 Jan 2006 12:40:24 -0000 Received: (qmail 67493 invoked by uid 500); 8 Jan 2006 12:40:23 -0000 Delivered-To: apmail-db-ojb-dev-archive@db.apache.org Received: (qmail 67447 invoked by uid 500); 8 Jan 2006 12:40:23 -0000 Mailing-List: contact ojb-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "OJB Developers List" Reply-To: "OJB Developers List" Delivered-To: mailing list ojb-dev@db.apache.org Received: (qmail 67436 invoked by uid 500); 8 Jan 2006 12:40:22 -0000 Received: (qmail 67433 invoked by uid 99); 8 Jan 2006 12:40:22 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 08 Jan 2006 04:40:22 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Sun, 08 Jan 2006 04:40:21 -0800 Received: (qmail 63830 invoked by uid 65534); 8 Jan 2006 12:40:01 -0000 Message-ID: <20060108124001.63828.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r367025 [2/2] - in /db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker: accesslayer/ accesslayer/sql/ core/ query/ util/ Date: Sun, 08 Jan 2006 12:39:56 -0000 To: ojb-commits@db.apache.org From: brj@apache.org X-Mailer: svnmailer-1.0.5 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/SelectionCriteria.java URL: http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/SelectionCriteria.java?rev=367025&r1=367024&r2=367025&view=diff ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/SelectionCriteria.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/SelectionCriteria.java Sun Jan 8 04:39:31 2006 @@ -1,6 +1,9 @@ package org.apache.ojb.broker.query; -/* Copyright 2002-2005 The Apache Software Foundation +import java.util.List; +import java.util.Map; + +/* Copyright 2002-2004 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,9 +18,6 @@ * limitations under the License. */ -import java.util.List; -import java.util.Map; - /** * abstract baseclass of all criteria classes, can't be instantiated. * @@ -31,9 +31,11 @@ * @author Jakob Braeuchi * @version $Id$ */ -public abstract class SelectionCriteria implements java.io.Serializable +public abstract class SelectionCriteria extends AbstractCriterion { - static final long serialVersionUID = -5194901539702756536L; protected static final String EQUAL = " = "; + static final long serialVersionUID = -5194901539702756536L; + + protected static final String EQUAL = " = "; protected static final String NOT_EQUAL = " <> "; protected static final String GREATER = " > "; protected static final String NOT_GREATER = " <= "; @@ -58,23 +60,18 @@ // BRJ: the criterion must be bound for the main class and for all extents private int m_numberOfExtentsToBind = 0; - private String m_alias = null; - private UserAlias m_userAlias = null; - + // BRJ: indicate whether attribute name should be translated into column name private boolean m_translateAttribute = true; - - private Criteria m_criteria; - + /** * Constructor declaration * * @param anAttribute column- or fieldName or a Query * @param aValue the value to compare with - * @param negative criteria is negated (ie NOT LIKE instead of LIKE) - * @param alias use alias to link anAttribute to + * parameters have an unambiguous signature */ - SelectionCriteria(Object anAttribute, Object aValue, String alias) + SelectionCriteria(Object anAttribute, Object aValue) { if (!(anAttribute instanceof String || anAttribute instanceof Query)) { @@ -83,30 +80,7 @@ m_attribute = anAttribute; m_value = aValue; - this.m_bound = !isBindable(); - this.m_alias = alias; - this.m_userAlias = m_alias == null ? null : new UserAlias(m_alias, (String)getAttribute(), true); - } - - /** - * Constructor declaration - * - * @param anAttribute column- or fieldName or a Query - * @param aValue the value to compare with - * @param aUserAlias userAlias to link anAttribute to - */ - SelectionCriteria(Object anAttribute, Object aValue, UserAlias aUserAlias) - { - if (!(anAttribute instanceof String || anAttribute instanceof Query)) - { - throw new IllegalArgumentException("An attribute must be a String or a Query !"); - } - - m_attribute = anAttribute; - m_value = aValue; - this.m_bound = !isBindable(); - this.m_userAlias = aUserAlias; - this.m_alias = m_userAlias == null ? null : m_userAlias.getName(); + m_bound = !isBindable(); } /** @@ -199,53 +173,8 @@ { this.m_numberOfExtentsToBind = numberOfExtentsToBind; } - - /** - * @return String - */ - public String getAlias() - { - return m_alias; - } - - /** - * Sets the alias. By default the entire attribute path participates in the alias - * @param alias The name of the alias to set - */ - public void setAlias(String alias) - { - m_alias = alias; - String attributePath = (String)getAttribute(); - boolean allPathsAliased = true; - m_userAlias = new UserAlias(alias, attributePath, allPathsAliased); - - } - - /** - * Sets the alias. - * @param alias The alias to set - */ - public void setAlias(String alias, String aliasPath) - { - m_alias = alias; - m_userAlias = new UserAlias(alias, (String)getAttribute(), aliasPath); - } /** - * Sets the alias using a userAlias object. - * @param userAlias The alias to set - */ - public void setAlias(UserAlias userAlias) - { - m_alias = userAlias.getName(); - m_userAlias = userAlias; - } - - public UserAlias getUserAlias() - { - return m_userAlias; - } - /** * @return true if attribute name should be translated into column name */ public boolean isTranslateAttribute() @@ -261,27 +190,16 @@ m_translateAttribute = b; } - /** - * @return + /** + * Get the Query of the parent + * + * @see org.apache.ojb.broker.query.Criterion#getQuery() */ - public Criteria getCriteria() - { - return m_criteria; - } - - /** - * @param criteria - */ - void setCriteria(Criteria criteria) - { - m_criteria = criteria; - } - public QueryByCriteria getQuery() { - if (getCriteria() != null) + if (getParentCriterion() != null) { - return getCriteria().getQuery(); + return getParentCriterion().getQuery(); } else { @@ -296,7 +214,14 @@ */ public Map getPathClasses() { - return getCriteria().getPathClasses(); + if (getParentCriterion() != null) + { + return getParentCriterion().getPathClasses(); + } + else + { + return null; + } } /** @@ -304,10 +229,34 @@ * * @param aPath the path segment ie: allArticlesInGroup * @return a List o Class objects to be used in SqlStatment - * @see org.apache.ojb.broker.QueryTest#testInversePathExpression() + * Usage see in OJB test-suite QueryTest#testInversePathExpression() */ public List getClassesForPath(String aPath) { - return getCriteria().getClassesForPath(aPath); + if (getParentCriterion() != null) + { + return getParentCriterion().getClassesForPath(aPath); + } + else + { + return null; + } } + + + /** + * @see org.apache.ojb.broker.query.Criterion#getUserAlias() + */ + public UserAlias getUserAlias() + { + if (getParentCriterion() != null) + { + return getParentCriterion().getUserAlias(); + } + else + { + return null; + } + } + } Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/SqlCriteria.java URL: http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/SqlCriteria.java?rev=367025&r1=367024&r2=367025&view=diff ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/SqlCriteria.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/SqlCriteria.java Sun Jan 8 04:39:31 2006 @@ -1,6 +1,6 @@ package org.apache.ojb.broker.query; -/* Copyright 2002-2005 The Apache Software Foundation +/* Copyright 2002-2004 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ */ public class SqlCriteria extends SelectionCriteria { + private static final long serialVersionUID = 684684911671284744L; /** * Constructor for SqlCriteria. @@ -30,7 +31,7 @@ */ SqlCriteria(String anSqlStatement) { - super(anSqlStatement, null, (String)null); + super(anSqlStatement, null); } /* Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/UserAlias.java URL: http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/UserAlias.java?rev=367025&r1=367024&r2=367025&view=diff ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/UserAlias.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/UserAlias.java Sun Jan 8 04:39:31 2006 @@ -1,6 +1,6 @@ package org.apache.ojb.broker.query; -/* Copyright 2002-2005 The Apache Software Foundation +/* Copyright 2002-2004 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,13 +16,8 @@ */ import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.apache.ojb.broker.util.logging.Logger; -import org.apache.ojb.broker.util.logging.LoggerFactory; +import java.util.HashSet; +import java.util.Set; /** * This class is used to specify the path segments of a Criteria @@ -33,14 +28,12 @@ */ public class UserAlias implements Serializable { - private static final long serialVersionUID = 3257282552220627249L; - - private Map m_mapping = new HashMap(); - private String m_name = null; - private String m_attributePath = null; - private boolean m_allPathsAliased = false; - private Logger m_logger = LoggerFactory.getLogger(UserAlias.class); + private static final long serialVersionUID = -5711882208831638214L; + private Set m_pathSegments = new HashSet(); + private String m_name = null; + private boolean m_allPathsAliased = true; + /** * Constructor declaration * @@ -52,79 +45,6 @@ } /** - * Constructor declaration - * - * @param name the name of the alias - * @param attributePath the full path of the SelectionCriteria attribute - * @param aliasPath the portion of the attributePath which should be aliased. - * This should be unambiguous. If ambiguous portions need aliasing (e.g. - * B.C in allAs.B.C.B.C), use add() instead - */ - public UserAlias(String name, String attributePath, String aliasPath) - { - m_name = name; - m_attributePath = attributePath; - if (attributePath.lastIndexOf(aliasPath) == -1) - { - m_logger.warn("aliasPath should be a substring of attributePath"); - } - initMapping(attributePath, aliasPath); - } - - /** - * Constructor declaration - * - * @param name the name of the alias - * @param attributePath the full path of the SelectionCriteria attribute - * @param allPathsAliased indicates that all path portions of attributePath - * should be aliased (previously was the default) - */ - public UserAlias(String name, String attributePath, boolean allPathsAliased) - { - m_name = name; - m_attributePath = attributePath; - m_allPathsAliased = allPathsAliased; - } - - /** - * generates the mapping from the aliasPath - * @param aliasPath the portion of attributePath which should be aliased - * - */ - private void initMapping(String attributePath, String aliasPath) - { - Iterator aliasSegmentItr = pathToSegments(aliasPath).iterator(); - String currPath = ""; - String separator = ""; - while (aliasSegmentItr.hasNext()) - { - currPath = currPath + separator + (String) aliasSegmentItr.next(); - int beginIndex = attributePath.indexOf(currPath); - if (beginIndex == -1) - { - break; - } - int endIndex = beginIndex + currPath.length(); - m_mapping.put(attributePath.substring(0, endIndex), m_name); - separator = "."; - } - } - - private ArrayList pathToSegments(String path) - { - ArrayList segments = new ArrayList(); - int sp = path.indexOf('.'); - while (sp != -1) - { - segments.add(path.substring(0, sp)); - path = path.substring(sp + 1); - sp = path.indexOf('.'); - } - segments.add(path); - return segments; - } - - /** * Returns the name of this alias */ public String getName() @@ -134,31 +54,45 @@ /** * Returns the name of this alias if path has been added - * to the aliased portions of attributePath + * to the aliased portions of attributePath. * * @param path the path to test for inclusion in the alias */ public String getAlias(String path) { - if (m_allPathsAliased && m_attributePath.lastIndexOf(path) != -1) + if (m_allPathsAliased) + { + return m_name; + } + else if (m_pathSegments.contains(path)) { return m_name; } - Object retObj = m_mapping.get(path); - if (retObj != null) + else { - return (String) retObj; + return null; } - return null; } /** - * Adds a path to the aliased paths - * - * @param path the path to add to the aliased paths + * Adds a path segment to the aliased paths. + * @param path the path to be added to the aliased paths */ public void add(String path) { - m_mapping.put(path, m_name); + m_pathSegments.add(path); + + m_allPathsAliased = false; } + + /** + * Creates the pathSegments based on attributePath and aliasPath. + * Do nothing here ! + * @param attributePath the attributePath + */ + void addAttributePath(String attributePath) + { + // do nothing + } + } Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/ValueCriteria.java URL: http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/ValueCriteria.java?rev=367025&r1=367024&r2=367025&view=diff ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/ValueCriteria.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/ValueCriteria.java Sun Jan 8 04:39:31 2006 @@ -1,6 +1,6 @@ package org.apache.ojb.broker.query; -/* Copyright 2002-2005 The Apache Software Foundation +/* Copyright 2002-2004 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,133 +24,78 @@ */ public class ValueCriteria extends SelectionCriteria { - static ValueCriteria buildEqualToCriteria(Object anAttribute, Object aValue, String anAlias) - { - return new ValueCriteria(anAttribute, aValue, EQUAL, anAlias); - } - - static ValueCriteria buildEqualToCriteria(Object anAttribute, Object aValue, UserAlias anAlias) - { - return new ValueCriteria(anAttribute, aValue, EQUAL, anAlias); - } + private static final long serialVersionUID = -6348755407896514485L; - static ValueCriteria buildNotEqualToCriteria(Object anAttribute, Object aValue, String anAlias) - { - return new ValueCriteria(anAttribute, aValue, NOT_EQUAL, anAlias); - } - static ValueCriteria buildNotEqualToCriteria(Object anAttribute, Object aValue, UserAlias anAlias) + static ValueCriteria buildEqualToCriteria(Object anAttribute, Object aValue) { - return new ValueCriteria(anAttribute, aValue, NOT_EQUAL, anAlias); + return new ValueCriteria(anAttribute, aValue, EQUAL); } - static ValueCriteria buildGreaterCriteria(Object anAttribute, Object aValue, String anAlias) - { - return new ValueCriteria(anAttribute, aValue,GREATER, anAlias); - } - static ValueCriteria buildGreaterCriteria(Object anAttribute, Object aValue, UserAlias anAlias) + static ValueCriteria buildNotEqualToCriteria(Object anAttribute, Object aValue) { - return new ValueCriteria(anAttribute, aValue,GREATER, anAlias); + return new ValueCriteria(anAttribute, aValue, NOT_EQUAL); } - static ValueCriteria buildNotGreaterCriteria(Object anAttribute, Object aValue, String anAlias) + static ValueCriteria buildGreaterCriteria(Object anAttribute, Object aValue) { - return new ValueCriteria(anAttribute, aValue, NOT_GREATER, anAlias); - } - static ValueCriteria buildNotGreaterCriteria(Object anAttribute, Object aValue, UserAlias anAlias) - { - return new ValueCriteria(anAttribute, aValue, NOT_GREATER, anAlias); + return new ValueCriteria(anAttribute, aValue,GREATER); } - static ValueCriteria buildLessCriteria(Object anAttribute, Object aValue, String anAlias) + static ValueCriteria buildNotGreaterCriteria(Object anAttribute, Object aValue) { - return new ValueCriteria(anAttribute, aValue, LESS, anAlias); - } - static ValueCriteria buildLessCriteria(Object anAttribute, Object aValue, UserAlias anAlias) - { - return new ValueCriteria(anAttribute, aValue, LESS, anAlias); + return new ValueCriteria(anAttribute, aValue, NOT_GREATER); } - static ValueCriteria buildNotLessCriteria(Object anAttribute, Object aValue, String anAlias) - { - return new ValueCriteria(anAttribute, aValue, NOT_LESS, anAlias); - } - static ValueCriteria buildNotLessCriteria(Object anAttribute, Object aValue, UserAlias anAlias) + static ValueCriteria buildLessCriteria(Object anAttribute, Object aValue) { - return new ValueCriteria(anAttribute, aValue, NOT_LESS, anAlias); + return new ValueCriteria(anAttribute, aValue, LESS); } - static ValueCriteria buildLikeCriteria(Object anAttribute, Object aValue, String anAlias) + static ValueCriteria buildNotLessCriteria(Object anAttribute, Object aValue) { - return new LikeCriteria(anAttribute, aValue, LIKE, anAlias); - } - static ValueCriteria buildLikeCriteria(Object anAttribute, Object aValue, UserAlias anAlias) - { - return new LikeCriteria(anAttribute, aValue, LIKE, anAlias); + return new ValueCriteria(anAttribute, aValue, NOT_LESS); } - static ValueCriteria buildNotLikeCriteria(Object anAttribute, Object aValue, String anAlias) + static ValueCriteria buildLikeCriteria(Object anAttribute, Object aValue) { - return new ValueCriteria(anAttribute, aValue, NOT_LIKE, anAlias); - } - static ValueCriteria buildNotLikeCriteria(Object anAttribute, Object aValue, UserAlias anAlias) - { - return new LikeCriteria(anAttribute, aValue, NOT_LIKE, anAlias); + return new LikeCriteria(anAttribute, aValue, LIKE); } - static InCriteria buildInCriteria(Object anAttribute, Object aValue, String anAlias) - { - return new InCriteria(anAttribute, aValue, IN, anAlias); - } - static InCriteria buildInCriteria(Object anAttribute, Object aValue, UserAlias anAlias) + static ValueCriteria buildNotLikeCriteria(Object anAttribute, Object aValue) { - return new InCriteria(anAttribute, aValue, IN, anAlias); + return new LikeCriteria(anAttribute, aValue, NOT_LIKE); } - static InCriteria buildNotInCriteria(Object anAttribute, Object aValue, String anAlias) - { - return new InCriteria(anAttribute, aValue, NOT_IN, anAlias); - } - static InCriteria buildNotInCriteria(Object anAttribute, Object aValue, UserAlias anAlias) + static InCriterion buildInCriteria(Object anAttribute, Object aValue) { - return new InCriteria(anAttribute, aValue, NOT_IN, anAlias); + return new InCriterion(anAttribute, aValue, IN); } - static NullCriteria buildNullCriteria(String anAttribute, String anAlias) + static InCriterion buildNotInCriteria(Object anAttribute, Object aValue) { - return new NullCriteria(anAttribute, IS_NULL, anAlias); - } - static NullCriteria buildNullCriteria(String anAttribute, UserAlias anAlias) - { - return new NullCriteria(anAttribute, IS_NULL, anAlias); + return new InCriterion(anAttribute, aValue, NOT_IN); } - static NullCriteria buildNotNullCriteria(String anAttribute, String anAlias) + static NullCriteria buildNullCriteria(String anAttribute) { - return new NullCriteria(anAttribute, NOT_IS_NULL, anAlias); + return new NullCriteria(anAttribute, IS_NULL); } - static NullCriteria buildNotNullCriteria(String anAttribute, UserAlias anAlias) + + static NullCriteria buildNotNullCriteria(String anAttribute) { - return new NullCriteria(anAttribute, NOT_IS_NULL, anAlias); + return new NullCriteria(anAttribute, NOT_IS_NULL); } - static BetweenCriteria buildBeweenCriteria(Object anAttribute, Object aValue1, Object aValue2, String anAlias) + static BetweenCriteria buildBeweenCriteria(Object anAttribute, Object aValue1, Object aValue2) { - return new BetweenCriteria(anAttribute, aValue1, aValue2, BETWEEN, anAlias); - } - static BetweenCriteria buildBeweenCriteria(Object anAttribute, Object aValue1, Object aValue2, UserAlias anAlias) - { - return new BetweenCriteria(anAttribute, aValue1, aValue2, BETWEEN, anAlias); + return new BetweenCriteria(anAttribute, aValue1, aValue2, BETWEEN); } - static BetweenCriteria buildNotBeweenCriteria(Object anAttribute, Object aValue1, Object aValue2, String anAlias) - { - return new BetweenCriteria(anAttribute, aValue1, aValue2, NOT_BETWEEN, anAlias); - } - static BetweenCriteria buildNotBeweenCriteria(Object anAttribute, Object aValue1, Object aValue2, UserAlias anAlias) + static BetweenCriteria buildNotBeweenCriteria(Object anAttribute, Object aValue1, Object aValue2) { - return new BetweenCriteria(anAttribute, aValue1, aValue2, NOT_BETWEEN, anAlias); + return new BetweenCriteria(anAttribute, aValue1, aValue2, NOT_BETWEEN); } - + private String m_clause; /** @@ -159,28 +104,14 @@ * @param anAttribute column- or fieldName * @param aValue the value to compare with * @param aClause the SQL compare clause (ie LIKE, = , IS NULL) - * @param anAlias use alias to link anAttribute to */ - ValueCriteria(Object anAttribute, Object aValue, String aClause, String anAlias) + ValueCriteria(Object anAttribute, Object aValue, String aClause) { - super(anAttribute, aValue, anAlias); + super(anAttribute, aValue); m_clause = aClause; } - - /** - * Constructor declaration - * - * @param anAttribute column- or fieldName - * @param aValue the value to compare with - * @param aClause the SQL compare clause (ie LIKE, = , IS NULL) - * @param aUserAlias userAlias to link anAttribute to - */ - ValueCriteria(Object anAttribute, Object aValue, String aClause, UserAlias aUserAlias) - { - super(anAttribute, aValue, aUserAlias); - m_clause = aClause; - } - + + /** * @see org.apache.ojb.broker.query.SelectionCriteria#getClause() */ Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/BrokerHelper.java URL: http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/BrokerHelper.java?rev=367025&r1=367024&r2=367025&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 Sun Jan 8 04:39:31 2006 @@ -550,7 +550,7 @@ // BRJ: copied Criteria without groupby, orderby, and prefetched relationships if (aQuery.getCriteria() != null) { - countCrit = aQuery.getCriteria().copy(false, false, false); + countCrit = new Criteria(aQuery.getCriteria(),false,false,false); } if (aQuery.isDistinct()) --------------------------------------------------------------------- To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org For additional commands, e-mail: ojb-dev-help@db.apache.org