On 5/18/06, Mike Kienenberger <[EMAIL PROTECTED]> 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; }