Well, I'm still on Cayenne 3, but the number one thing for me is ObjectContext.
-- ObjectContext unit of work: Distinct scratch areas where a set of changes are proposed, but can be thrown away with no effort, or committed to the database if kept -- all without ongoing open active database connections. -- uniquing of database objects with object context Most of my work these days is required to be in JPA, and JPA fails to provide for the above. Other things I like: - - custom cgen templates On Mon, Oct 9, 2017 at 8:36 AM, Andrus Adamchik <[email protected]> wrote: > >> On Oct 9, 2017, at 3:12 PM, Robert Zeigler <[email protected]> >> wrote: >> * Ease of use - the runtime API is well thought-out from a user’s >> perspective. I still miss it. In particular, the SelectQuery API is very >> nice, and Cayenne’s default approaches to ideas like lazy loading, automatic >> association of new objects with the object context, etc. > > And this was before 4.0. Now we have ObjectSelect, SelectById and > SQLSelect/SQLExec that are modern type-safe fluent descendants of > SelectQuery/SQLTemplate. > >> * Clear separation of the object from the db models. ORM is great for 90% of >> the use-cases in an application. Sometimes, you need to bypass it. Cayenne >> made bypassing it straightforward and clean. > > Great to hear that this aspect gets some praise. I have always taken it for > granted, but I guess we shouldn't. > >> * SQLTemplate! You could build an entire, very performant application off of >> SQLTemplate and still have a clean application. > > If you were still coding in Java, you'd love SQLSelect/SQLExec :) > > Andrus >
