On 5/18/06, Mike Kienenberger <mkienen..mail.com> wrote:
> This is my first-pass at solving the problem at the application level
Cleaned up version that can go in the Base DataObject class.
protected List getToManyRelationshipTheHardWay(String
targetPrimaryKey, String joinTable, String sourcePrimaryKey, Class
targetClass)
{
String sql = "select distinct(" + targetPrimaryKey + ") as ID
from " + joinTable + " where " + sourcePrimaryKey + " = $PRIMARY_KEY";
// set parameters and run it...
Map parameters = new HashMap();
parameters.put("PRIMARY_KEY", getPrimaryKey());
SQLTemplate rawSelect = new SQLTemplate(getClass(), sql, true);
rawSelect.setParameters(parameters);
rawSelect.setFetchingDataRows(true);
List distinctFKList = getDataContext().performQuery(rawSelect);
List toManyList = new ArrayList(distinctFKList.size());
Iterator foreignKeyIterator = distinctFKList.iterator();
while (foreignKeyIterator.hasNext())
{
DataRow dataRow = (DataRow) foreignKeyIterator.next();
Object primaryKey = (Object) dataRow.get("ID");
if (null == primaryKey) continue;
toManyList.add(DataObjectUtils.objectForPK(getDataContext(),
targetClass, primaryKey));
}
return toManyList;
}
This archive was generated by hypermail 2.0.0 : Thu May 18 2006 - 19:05:48 EDT