[
https://issues.apache.org/jira/browse/CAY-1724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
John Huss updated CAY-1724:
---------------------------
Attachment: Property.java
> 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
> Priority: Minor
> Labels: patch
> 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