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
>

Reply via email to