[
https://issues.apache.org/jira/browse/CAY-1294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
John Huss updated CAY-1294:
---------------------------
Attachment: 0002-Minimize-compiler-warnings-about-missing-type-parame.patch
0001-Add-type-parameter-to-SelectQuery-to-indicate-query-.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: https://issues.apache.org/jira/browse/CAY-1294
> 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,
> 0002-Minimize-compiler-warnings-about-missing-type-parame.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: http://www.atlassian.com/software/jira