jmcnally    01/05/30 15:27:54

  Modified:    src/java/org/apache/turbine/util/db Criteria.java
               src/java/org/apache/turbine/services/security/db
                        DBUserManager.java
  Log:
  patch by Eric Dobbs to keep chained Criterion when converting User constants into 
table names.  Modified slightly to allow joins to other tables.
  
  Revision  Changes    Path
  1.35      +11 -1     
jakarta-turbine/src/java/org/apache/turbine/util/db/Criteria.java
  
  Index: Criteria.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine/src/java/org/apache/turbine/util/db/Criteria.java,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- Criteria.java     2001/05/13 20:54:27     1.34
  +++ Criteria.java     2001/05/30 22:27:49     1.35
  @@ -94,7 +94,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Brett McLaughlin</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Eric Dobbs</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Henning P. Schmiedehausen</a>
  - * @version $Id: Criteria.java,v 1.34 2001/05/13 20:54:27 jon Exp $
  + * @version $Id: Criteria.java,v 1.35 2001/05/30 22:27:49 jmcnally Exp $
    */
   public class Criteria extends Hashtable
   {
  @@ -3248,6 +3248,16 @@
               return this.column;
           }
           
  +        /**
  +         * Set the table name.
  +         *
  +         * @param name A String with the table name.
  +         */
  +        public void setTable(String name)
  +        {
  +            this.table=name;
  +        }
  +
           /**
            * Get the table name.
            *
  
  
  
  1.6       +13 -5     
jakarta-turbine/src/java/org/apache/turbine/services/security/db/DBUserManager.java
  
  Index: DBUserManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine/src/java/org/apache/turbine/services/security/db/DBUserManager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DBUserManager.java        2001/04/26 23:25:06     1.5
  +++ DBUserManager.java        2001/05/30 22:27:53     1.6
  @@ -87,7 +87,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Frank Y. Kim</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Craig D. Berry</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Rafal Krzewski</a>
  - * @version $Id: DBUserManager.java,v 1.5 2001/04/26 23:25:06 jmcnally Exp $
  + * @version $Id: DBUserManager.java,v 1.6 2001/05/30 22:27:53 jmcnally Exp $
    */
   public class DBUserManager implements UserManager
   {
  @@ -195,18 +195,26 @@
       public User[] retrieve( Criteria criteria )
           throws DataBackendException
       {
  -        Criteria dbCriteria = new Criteria();
           Iterator keys = criteria.keySet().iterator();
           while(keys.hasNext())
           {
               String key = (String)keys.next();
  -            dbCriteria.add(TurbineUserPeer.getColumnName(key),
  -                criteria.get(key), criteria.getComparison(key));
  +            // set the table name for all attached criterion
  +            Criteria.Criterion[] criterion = criteria
  +                .getCriterion(key).getAttachedCriterion();
  +            for (int i=0;i<criterion.length;i++)
  +            {
  +                String table = criterion[i].getTable();
  +                if ( table == null || "".equals(table) ) 
  +                {
  +                    criterion[i].setTable(TurbineUserPeer.getTableName());
  +                }
  +            }
           }
           Vector users = new Vector(0);
           try
           {
  -            users = TurbineUserPeer.doSelect(dbCriteria);
  +            users = TurbineUserPeer.doSelect(criteria);
           }
           catch(Exception e)
           {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to