The following code retrieves rows from MySql DB and is sorted properly based on 
println below. After this method is called, a CustomerBean[] is populated with these 
results..see code at end. The bean[] is being populated with unsorted objects(?). I 
suspect the populateObject method is ignoring/undoing my sortorder, but all I can do 
to verify is println() getting the memory address of the Customer objects. Any info on 
how to do this and maintain my sortorder would be appreciated.

public class CustomerPeer
    extends org.apache.torque.BaseCustomerPeer
{
 public static List getCustomersByPref(String state, String subject, int isPreferred ){
 List results = null;
  //Connection db = null;
  String sql = "SELECT CUSTOMER.CUSTOMER_ID, CUSTOMER.CUSTOMER_NAME, CUSTOMER.RATING, 
CUSTOMER.RATED_COUNT, CUSTOMER.PAID_AD, CUSTOMER.USE_URL, CUSTOMER.ADDED FROM 
CUSTOMER, CATEGORY_MINOR, LOCATION WHERE CATEGORY_MINOR.CATEGORY_NAME LIKE '%" + 
subject + "%' AND LOCATION.FK_STATE='" + state + "' AND CUSTOMER.PAID_AD = " + 
isPreferred + " AND CATEGORY_MINOR.FKCUSTOMER_ID=CUSTOMER.CUSTOMER_ID AND 
CUSTOMER.CUSTOMER_ID=LOCATION.FKCUSTOMER_ID ORDER BY CUSTOMER.CUSTOMER_NAME ASC";
  try{
   //db = Torque.getConnection(DATABASE_NAME);
   //results = BasePeer.executeQuery( sql, db );
   results = BasePeer.executeQuery( sql, "fishing" );
/*
SORTED PROPERLY HERE
*/
   System.out.println("Results List = " + results.toString());
   return populateObjects(results);
   //following results in java.lang.ClassCastException
   //populateObjects(results); 
   //System.out.println("Results List after popOb = " + results.toString());
   //return results;
  }
  catch(Exception e){
   System.out.println("Error in getCustomersByPref");
   e.printStackTrace();
  }
    return null;
 }
}
****************************************************
bean populated using the convention:
//where marinas = results from query after populateObjects() has been called
Map companies = new HashMap();
for( int j=0; j<marinas.size();j++ ){
    CompanyBean current = new CompanyBean();
    Customer pickme = (Customer)marinas.get(j);
    ...
    companies.put(Integer.toString(j), current );
}
CompanyBean[] result = new CompanyBean[companies.size()];
   companies.values().toArray(result);
   return (result);

Reply via email to