Re: Persistence Strategies [Was: Open source WO - offer]
Andrus Adamchik <[email protected]> Thu, 7 Sep 2006 10:47:13 +0400
| Newsgroups | gmane.comp.web.webobjects.general |
|---|---|
| Message-ID | <[email protected]> |
On Sep 6, 2006, at 4:37 AM, Lenny Marks wrote: >>> I'm not too familiar with Cayenne. We checked it out about a year >>> ago, but thought it might be a little too much like EOF >> >> Not in the threading part ;-) > > Is Cayenne similar in architecture with something that looks like > an EOF stack(Object store hierarchy)? If so, do developers have to > manage locking/unlocking it like in EOF. Bottom line, can more than > one request do database access without blocking others(by default)? There is still a shared piece in the stack that we need to synchronize upon. But the synchronized block does not wrap any DB interaction or object creation, only the cache update which takes a fraction of time of each user operation. Also developers do not have to manage any locks. >>> and at the time did not support POJO's which have been of >>> substantial benefit. I'd be interested to here comments if >>> Cayenne addresses some of these issues. >> >> DataObjects (and more so Persistent objects used in the remote >> layer) are POJO's, except for the framework callbacks in the set/ >> get methods. We just need to replace them with runtime class >> enhancement (we still want lazy faulting and automatic reverse >> relationship connection/disconnection, don't we?). > > Lazy faulting is definitely a good thing . Not sure what you mean > exactly by reverse relationship connection/disconnection. If that > means persistence by reachability, then also a good thing. No it actually means functionality like addObjectToBothSidesOfRelationshipWithKey, only as a part of set* method. In other words - object graph consistency is guaranteed by the framework. > One note about the runtime class enhancement. This is one of those > complaints I have about Hibernate. It may just go with the > territory, but the runtime class enhancement adds a substantial > amount of startup time which hurts developer productivity. I've heard about slow startup times of Hibernate. Not sure why they can't address it, but as for the general class enhancement issue (regardless of the specific implementation) - POJO can only go that far in the ORM world, you have to have some ugly tricks in the backend to make them persistent. Andrus