cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Huss (JIRA)" <>
Subject [jira] [Updated] (CAY-1294) Generify query
Date Mon, 10 Dec 2012 06:05:21 GMT


John Huss updated CAY-1294:

    Attachment: 0002-Minimize-compiler-warnings-about-missing-type-parame.patch

Here is an implementation of a generified SelectQuery.  It doesn't require any new API - there
is simply an overloaded version of ObjectContext.performQuery for SelectQuery<T> that
returns List<T>.  

<T> List<T> performQuery(SelectQuery<T> query);

The <T> is unbounded because it has to support DataRows in addition to Persistent objects.
 The end result of course is that you can avoid having to cast the query result from List
to List<Artist> and you avoid the compiler warning.  This seems like a simple win -
any objections?

I also added a static method to create an instance because if you use this you can avoid repeating
the class name twice, as in new SelectQuery<Artist>(Artist.class, null), which feels
very tedious.  So if you prefer you can call SelectQuery.from(Artist.class, null) instead
and it will infer List<Artist> as the query result type.

public static <T> SelectQuery<T> from(Class<T> rootClass, Expression qualifier);
> Generify query
> --------------
>                 Key: CAY-1294
>                 URL:
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Core Library
>            Reporter: Ari Maniatis
>            Assignee: Andrus Adamchik
>             Fix For: Undefined future
>         Attachments: 0001-Add-type-parameter-to-SelectQuery-to-indicate-query-.patch,
> Although most of the generics work has been completed for 3.0, 'query' is still largely
untouched. From a mailing list post by Andrus, here are possible query result types:
>  ? extends Persistent
>  ? extends Object (unfinished POJO implementation)
>  CayenneDataObject (as in "generic persistence" [1])
>  DataRow
>  scalar
>  Object[] (a mix of scalars and any of the above)
> Certainly having a typed result list would be very useful in the most common case of
<? extends Persistent>.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message