cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Kienenberger" <mkien...@gmail.com>
Subject Re: Error when join table spans datamaps
Date Thu, 18 May 2006 23:05:23 GMT
On 5/18/06, Mike Kienenberger <mkienenb@gmail.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;
    }

Mime
View raw message