cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Gentry <>
Subject Re: [jira] [Created] (CAY-1724) Add 'Property' class for easier and better Expression creation
Date Fri, 03 Aug 2012 01:57:20 GMT
I'm a bit delayed and just saw this ...

I'm curious how much extra overhead this will add to each Cayenne
class?  Probably not a huge issue since it is declared statically, but
I'm still curious.



On Wed, Jul 11, 2012 at 3:04 AM, Andrus Adamchik <> wrote:
> +1. I saw it used on one project and it was a nice concept.
> Andrus
> On Jul 11, 2012, at 7:30 AM, John Huss (JIRA) wrote:
>> John Huss created CAY-1724:
>> ------------------------------
>>             Summary: Add 'Property' class for easier and better Expression creation
>>                 Key: CAY-1724
>>                 URL:
>>             Project: Cayenne
>>          Issue Type: Improvement
>>          Components: Core Library
>>    Affects Versions: 3.2M1
>>            Reporter: John Huss
>>            Priority: Minor
>>         Attachments:
>> 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.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:!default.jspa
>> For more information on JIRA, see:

View raw message