RE: Open source WO - offer

"Bruce Fancher" <[email protected]> Mon, 4 Sep 2006 09:33:16 -0400
Newsgroups gmane.comp.web.webobjects.general
Message-ID <00bf01c6d026$adb717b0$6301a8c0@deadlord>
Yeah, the whole detached object thing seems to be one of the dumbest things
about Hibernate.  I understand the principle("POJOs dude!"), but in practice
it seems to cause nothing but trouble (see "Open Session in View") and
doesn't really buy you very much.  I asked some people at work with more
experience with Hibernate than I have why the practice in Hibernate is to
open and close a session with each request, whereas with EOF you just leave
one or more EditingContexts open.  No one seemed to know.  Any ideas?
What's the recommended practice with Cayenne?

BTW, what's the timeline for JPA support in Cayenne?  Not that I think that
JPA is such a great spec, but it's hard to sell Cayenne on a project to
people who want "standards" and think that Hibernate is it.  I'm hoping that
if nothing else, JPA will open the door a little bit to considering better
alternatives.

Thanks,

Bruce

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Andrus Adamchik
Sent: Monday, September 04, 2006 2:13 AM
To: WebObjects-Talk Talk
Subject: Re: Open source WO - offer


On Sep 3, 2006, at 5:40 PM, Ashley Aitken wrote:

> 1.  What percentage of EOF "features" does Cayenne have equivalent to 
> or better than EOF?
>
> 2.  How many (useful ;-) features does Cayenne have that EOF doesn't?
>
> 3.  How would the reliability, performance, efficiency of EOF and 
> Cayenne compare?

As was mentioned elsewhere, Cayenne is not an API clone of EOF, so comparing
percentages won't be an accurate exercise. The similarities between Cayenne
and EOF are in the spirit (main ones being "rich"  
persistence object model, and attached objects). The differences are in
details. Here is a few that I can think of right away (aside from the
license):

* More databases are supported by Cayenne.
* Database type selection is automatic (no need to edit configuration when
deploying the same app to a different db).
* Better raw SQL queries: scriptable; support for configuration of multiple
DB dialects in the same query.
* "Local JNDI" mode that allows to work with JNDI model in the absence of a
container.

I can think of one serious omission in the Cayenne 1.2 that we are going to
address in 3.0 - no direct support for vertical inheritance (so you have to
map individual tables separately). Also there is no LDAP adapter - we almost
started on it a few times, but the parties interested in it changed their
minds.

Moving forward Cayenne will also offer support for persistence based on POJO
(java objects that do not extend a common superclass) and JDK annotations. I
am not a big fan of "detached" POJO operation, although there is lots of
demand for it from non-EOF users, and it is a part of JPA spec. Annotations
on the other hand when coupled with smart defaults are great. They eliminate
all configuration files from your projects, making "java-first" development
approach and prototyping very productive.

Andrus



_______________________________________________
WebObjects-talk mailing list
[email protected]
http://www.omnigroup.com/mailman/listinfo/webobjects-talk