Yeah, and keep in mind that Cayenne could care less how the downstream code 
accesses its properties. The whole readNestedProperty thing is just a 
convenience, but is not something related to the ORM features. So one can use 
JSP EL, OGNL, java beans utilities or a million other frameworks out there to 
navigate the properties. Cayenne is agnostic to those. 

There's one exception - Cayenne read/write properties API is needed when you 
are using generic objects - 
http://cayenne.apache.org/doc30/generic-persistent-class.html Otherwise, just 
use what's available in Java.

Andrus


On Aug 13, 2011, at 5:53 PM, Michael Gentry wrote:

> Hi John,
> 
> Cayenne's readProperty() and readNestedProperty() are similar to KVC.
> Although there is a writeProperty(), I don't believe there is a
> writeNestedProperty() yet (still on the to-do list).  In practice,
> though, I rarely use these methods directly these days.  Cayenne's
> Expression.fromString() (and others) supports relationship paths (so
> you can say "x.y.z.name") and the web framework I use (Tapestry 5)
> directly supports using "x.y.z.name" in their HTML templates.  I've
> not had any issues following relationship paths through many objects.
> 
> mrg
> 
> 
> On Sat, Aug 13, 2011 at 9:34 AM, John Huss <[email protected]> wrote:
>> Does cayenne have anything like key value coding?  When I glanced at the API 
>> I thought I saw readProperty and writeProperty methods that looked similar.  
>> Is that the case?  Is there a way to follow a key path through several 
>> objects?
>> 
>> On Aug 11, 2011, at 10:53 AM, Joseph Senecal <[email protected]> wrote:
>> 
>>> The big one is that WebObjects includes both an ORM and a web interface 
>>> that understands ORM objects. You can use WebObjects by itself to develop a 
>>> Web App that talks to a database where Cayenne is just the ORM layer. So 
>>> comparing EOF (WebObjects ORM layer) to Cayenne, here's what I've noticed 
>>> so far:
>>> 
>>> EOF:
>>> EOF uses it's own collection classes (because it started as Objective C). 
>>> This sounds like a bad thing, but having it's own collection classes allows 
>>> it to do things like provide a common interface to both NSDictionaries and 
>>> Enterprise Objects.
>>> Project Wonder: adds functionality and connivence methods
>>> ERXKeys: A Project Wonder wrapper for a typed key that be used to fetch the 
>>> value from an Enterprise object, Map, or array. It can generate expression 
>>> objects and sort order objects with very clean compact code. This is the 
>>> piece I'm going to miss most transitioning from webObjects.
>>> 
>>> Cayenne:
>>> Default settings are an order of magnitude faster than EOF at bulk loading.
>>> Same Expression can be used to fetch either objects or Maps
>>> Built in support for handling LARGE select sets
>>> Built in standard SQL like DB independent query language
>>> Built in support for caching query results
>>> 
>>> I'm sure I'm missing a lot of features, but these are the differences I can 
>>> think off of the top of my head.
>>> 
>>> Joe
>>> 
>>> On Aug 11, 2011, at 8:35 AM, John Huss wrote:
>>> 
>>>> So what are the primary differences between WebObjects and Cayenne?
>>>> 
>>> 
>> 
> 

Reply via email to