[ 
https://issues.apache.org/jira/browse/CAY-1724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

John Huss reassigned CAY-1724:
------------------------------

    Assignee: John Huss
    
> Add 'Property' class for easier and better Expression creation
> --------------------------------------------------------------
>
>                 Key: CAY-1724
>                 URL: https://issues.apache.org/jira/browse/CAY-1724
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Core Library
>    Affects Versions: 3.2M1
>            Reporter: John Huss
>            Assignee: John Huss
>            Priority: Minor
>              Labels: patch
>             Fix For: 3.2M1
>
>         Attachments: Property.java
>
>
> Project Wonder (WebObjects) has a class which is basically just a wrapper 
> around an attribute or relationship name that gives you a way to create 
> Expressions in type-safe manner and with minimal effort.  Also sort orderings 
> can be easily generated.  In Wonder, these "property" objects are part of the 
> entity template so they are generated automatically.
> So for example:
> public class _Artist extends CayenneDataObject {
>     public static final Property<String> NAME = new 
> Property<String>(NAME_PROPERTY);
> ...
> }
> Then client code can do things like:
> new SelectQuery(Artist.class, NAME.eq("Pablo").andExp(AGE.gt(40)), 
> AGE.descs());
> This would select all artists with name equal to Pablo and age greater than 
> 40 and order them in descending age order.
> This concept has been proven to work incredibly well with WebObjects.  It's 
> almost as readable as using plain strings but has complete compile-time 
> checking for the property name and the type of the objects it is compared 
> with.
> A complete implementation is attached.  It's very simple since 
> ExpressionFactory does the work.  If this is accepted, it would make sense to 
> modify the built-in entity templates to generate Property constants for all 
> of the properties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to