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? >>>> >>> >> >
