Re: performQuery generics

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Thu Dec 27 2007 - 06:29:16 EST

  • Next message: Terrence A. Pietrondi: "Re: [CONF] Apache Cayenne: XML Mapping File (page edited)"

    Ok, so then my next question is should we proceed with the following?

    > // existing
    > List performQuery(Query query);
    >
    > // existing
    > QueryResponse performGenericQuery(Query query);
    >
    > // new
    > <T> List<T> performQuery(Class<T> aClass, Query query);
    >
    > // new
    > List<DataRow> performDataRowQuery(Query query);

    Andrus

    On Dec 27, 2007, at 1:13 PM, Aristedes Maniatis wrote:
    > On 27/12/2007, at 9:18 PM, Andrus Adamchik wrote:
    >
    >> Here is how I see the main design abstractions of context and query:
    >>
    >> * "query" is a _descriptor_ of an arbitrary database operation,
    >> with no knowledge of the runtime (EOF explicitly calls it
    >> EOFetchSpecification, "specification" == "descriptor"). While we
    >> compromised on that in the backend by introducing query callback
    >> methods ('createSQLAction', 'route'), those methods are extension
    >> points that are not visible to the user.
    >>
    >> * "context" is the environment facade object that executes queries.
    >>
    >> I don't see how we will benefit by turning this around?
    >
    > OK. I guess I perceived the purposes of these classes differently:
    > what does executing a query which returns datarows have to do with
    > manipulating the context (that is it is a function of the context)?
    > But philosophical debates are really not the important point here.
    > Whether the query is performed on the context or on the query, the
    > problems to solve are:
    >
    > * how does the query find out which persistent class it is operating
    > on (the root class)
    > * how does it know which type of data to return (datarows, map, list
    > of persistent objects, something else we invent in the future)
    >
    > So let's not get sidetracked by my red herring of which class the
    > performQuery function lives in.[1] Let's pretend I didn't raise
    > that issue.
    >
    > Ari
    >
    >
    >
    > [1] http://www.bikeshed.com/
    >
    >
    >
    > -------------------------->
    > ish
    > http://www.ish.com.au
    > Level 1, 30 Wilson Street Newtown 2042 Australia
    > phone +61 2 9550 5001 fax +61 2 9550 4001
    > GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
    >
    >
    >



    This archive was generated by hypermail 2.0.0 : Thu Dec 27 2007 - 06:29:52 EST