File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Object Relational Mapping and the fly likes What is JDO? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Databases » Object Relational Mapping
Bookmark "What is JDO?" Watch "What is JDO?" New topic
Author

What is JDO?

Timothy Sam
Ranch Hand

Joined: Sep 18, 2005
Posts: 746
Is it a technique, a pattern or a framework like hibernate???


SCJP 1.5
http://devpinoy.org/blogs/lamia/ - http://everypesocounts.com/
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336

Its a standard, kind of like JDBC. Sun provides an API, largely containing interfaces, that a JDO implementation (e.g. Kodo, tJDO, Castor etc.) implements to provide the actual persistance nuts and bolts.


JavaRanch FAQ HowToAskQuestionsOnJavaRanch
Erik Bengtson
Ranch Hand

Joined: Dec 06, 2003
Posts: 90
JDO is a standard API for object persistence. JDO 2 is a far better specification than any other standard. JDO is datastore agnostic.

JDO implementations include JPOX (open source), Kodo, Xcalia.

Another standard for object persistence is JPA. JPA is the EJB 3 persistence API for object relational mapping.

JPA implementations include JPOX (open source), Hibernate (open source), Kodo, TopLink.
Matt Horton
Ranch Hand

Joined: Feb 06, 2002
Posts: 107
To further the topic...

If there's any proof that jdo is dead, it is that jdocentral's forums have been pornified. That said, I used jdo back when it was built into forte, and it seemed fairly robust.

Are there any ojb users here? If I'm going to 'plug and go' (i.e. commit), does anyone have any words in favor of ojb before I give in to hibernate?
Timothy Sam
Ranch Hand

Joined: Sep 18, 2005
Posts: 746
Hmmmmm.... That's quite a sad story about JDO... Well... I just wanted to know before I delve into hibernate. Thanks for the info!
alex rojkov
Greenhorn

Joined: Aug 25, 2006
Posts: 2
Hibernate is a 'safe' bet. It's been around for quite a while, lots of users. But new frameworks keep popping up. So, I would definitely explore the alternatives before making a commitment. iBatis may be better for a particular kind of applications, Hibernate for others. I have been looking for a persistence layer for an online banking application and neither satisfied my needs. You might be better off with developing your own when you have some special requirements.


<a href="http://www.jdbcpersistence.org" target="_blank" rel="nofollow">JDBCPersistence High perfomance ORM solution</a>
Erik Bengtson
Ranch Hand

Joined: Dec 06, 2003
Posts: 90
JDO dead since when?

Since I have implemented JDO 1 and 2, and now I'm implementing JPA, I can say JDO 2 is superior than JPA. I'm compiling a comparison here:
http://www.jpox.org/docs/1_2/jdovsjpa.html

More details will be added during the JPA implementation work.
Matt Horton
Ranch Hand

Joined: Feb 06, 2002
Posts: 107
Hi Erik,
I would love to hear(believe/think) that jdo is still strong, but sun's jpa faq seems to pose jpa as a new alternative for hibernate (and jdo):
http://java.sun.com/javaee/overview/faq/persistence.jsp

Either way, it seems that ojb and hibernate are both easy to configure; perhaps jpa will be useful in the future.

Erik, are you a jpox developer? Have you had the chance to compare jpox's performance with ojb and hibernate?
[ August 28, 2006: Message edited by: Matt Horton ]
Mike Keith
author
Ranch Hand

Joined: Jul 14, 2005
Posts: 304
Originally posted by Erik Bengtson:
JDO 2 is a far better specification than any other standard.
This statement is both completely biased and irresponsibly stated, as is the comparison on the JPOX site. Both specifications have pros and cons, but JPA is the clear persistence standard going forward as part of the official Java Enterprise Edition platform. JDO is not part of that future.


-Mike
Pro JPA 2: Mastering the Java Persistence API
Jason Liao
Ranch Hand

Joined: Jun 17, 2005
Posts: 59
JPA implementations include JPOX (open source), Hibernate (open source), Kodo, TopLink.


Kodo and TopLink both have an open source version. ( OpenJPA and TopLink JPA Essential)
[ August 30, 2006: Message edited by: Jason Liao ]
Erik Bengtson
Ranch Hand

Joined: Dec 06, 2003
Posts: 90
Originally posted by Mike Keith:
This statement is both completely biased and irresponsibly stated, as is the comparison on the JPOX site. Both specifications have pros and cons, but JPA is the clear persistence standard going forward as part of the official Java Enterprise Edition platform. JDO is not part of that future.


biased? Read it again.

JPOX is implementing JPA too so I have no reason to be lying. Fell free to tell me what is wrong in the comparison on JPOX site.

JPA has some features that JDO does not have, which I will include on that comparison. You can also read on that page that it's a working in progress comparison. However there are plenty of things to be improved in JPA, these things you probably know most of them.

It's a fact that JDO has never been part of JEE. It's also clear that to be accepted by community JPA had to be runnable from JSE.
Erik Bengtson
Ranch Hand

Joined: Dec 06, 2003
Posts: 90
Originally posted by Jason Liao:


Kodo and TopLink both have an open source version. ( OpenJPA and TopLink JPA Essential)

[ August 30, 2006: Message edited by: Jason Liao ]


Well noticed :-)

Eric Samson
Greenhorn

Joined: Sep 01, 2004
Posts: 18
Originally posted by Mike Keith:
This statement is both completely biased and irresponsibly stated, as is the comparison on the JPOX site. Both specifications have pros and cons, but JPA is the clear persistence standard going forward as part of the official Java Enterprise Edition platform. JDO is not part of that future.


Hi Mike,

Nice to see that each time the trigram "JDO" is spelt you are here to fight against it. At least, it means you are in good shape :-)

I would agree with you about JPA being the J2E standard for ORM while JDO is the Java standard for persistence (e.g not limited to RDBMS).
So yes JDO won't part of "that" future, but JDO is alive. JDO2 is mature, with a lot of implementations and users. JDO2 has been approved by the JCP in the same timeframe as EJB3.

That said, an alignment of JDO and JPA around ORM would be nice in the future (at least for users).
One can expect that most JDO2 implementations will also support JPA. That's not a big deal for them, JPA being mostly a subset.

Ciao, Erix.
Matt Horton
Ranch Hand

Joined: Feb 06, 2002
Posts: 107
Hi Eric(s)

I would agree with you about JPA being the J2E standard for ORM while JDO is the Java standard for persistence (e.g not limited to RDBMS).


That's a nuance that I hadn't considered. Do you use jdo to persist outside of relational databases often? I wonder what %age of apps using jdo aren't persisting to a rdbms? 1% .1% .01%

It has to be a trivial amount.
Erik Bengtson
Ranch Hand

Joined: Dec 06, 2003
Posts: 90
Originally posted by Matt Horton:
Hi Eric(s)



That's a nuance that I hadn't considered. Do you use jdo to persist outside of relational databases often? I wonder what %age of apps using jdo aren't persisting to a rdbms? 1% .1% .01%

It has to be a trivial amount.


I dont work for Xcalia, however their product allows RDBMS, XMS, File store as far as I know. This turns to be very hand when 1% of the application you deal with XML database while the rest of it uses RDBMS databases.
Eric Samson
Greenhorn

Joined: Sep 01, 2004
Posts: 18
Originally posted by Matt Horton:
Hi Eric(s)
That's a nuance that I hadn't considered. Do you use jdo to persist outside of relational databases often? I wonder what %age of apps using jdo aren't persisting to a rdbms? 1% .1% .01%
It has to be a trivial amount.

Hello Matt
We all agree RDBMS are everywhere, no discussion about that.
But you also know that modern software design implies accessing and mapping XML information, Web Services, CICS transactions on mainframe, MQ-Series messages, Tuxedo, flat files and so on.
You have to admit that most information systems of large companies still store most of their data into mainframes, and in most cases Java applications are not allowed to access them through direct JDBC. You have to go through a service layer like CICS transactions, IMS and so on.
So it means that either you perform a lot of tedious manual JCA programming or you can extend the notion of ORM to non-relational data stores. Believe me or not, this is far from being a trivial amount.
It is very convenient to be able to rely on a unique standard like JDO2 or SDO2 to access all these things, which are not covered by JPA.
Mike Keith
author
Ranch Hand

Joined: Jul 14, 2005
Posts: 304

Nice to see that each time the trigram "JDO" is spelt you are here to fight against it. At least, it means you are in good shape :-)
Hi Eric,
Actually, as a general rule I don't "fight against" JDO. There were a lot of good things in that spec and I don't have anything against either the spec or the great folks that contributed to it (you amongst them!). I do pipe up, though, when people say outrageous things like "JDO 2 is a far better specification than any other standard" since it is not only very biased but I believe quite misleading to readers.

As to the future of JDO, most people have expressed the same opinion, but I won't say what it is. Anyone that cares or that is interested should do their own homework and come to their own conclusions, not get them from people closely affiliated with either the JDO spec (you guys) or the JPA spec (me)
Eric Samson
Greenhorn

Joined: Sep 01, 2004
Posts: 18
Originally posted by Mike Keith:
As to the future of JDO, most people have expressed the same opinion, but I won't say what it is. Anyone that cares or that is interested should do their own homework and come to their own conclusions, not get them from people closely affiliated with either the JDO spec (you guys) or the JPA spec (me)


Hi Mike,
Please note that I'm part of both JDO2 and EJB3/JPA expert groups.
As I said most JDO vendors will certainly also implement EJB3/JPA and I hope will see a kind of convergence of those standards regarding the ORM subset.
Ciao, Erix.
Erik Bengtson
Ranch Hand

Joined: Dec 06, 2003
Posts: 90
Originally posted by Mike Keith:
Hi Eric,
Actually, as a general rule I don't "fight against" JDO. There were a lot of good things in that spec and I don't have anything against either the spec or the great folks that contributed to it (you amongst them!). I do pipe up, though, when people say outrageous things like "JDO 2 is a far better specification than any other standard" since it is not only very biased but I believe quite misleading to readers.

As to the future of JDO, most people have expressed the same opinion, but I won't say what it is. Anyone that cares or that is interested should do their own homework and come to their own conclusions, not get them from people closely affiliated with either the JDO spec (you guys) or the JPA spec (me)


Mike, neither I am fighting against JPA, however I expressed my own opinion, and want to make sure people is aware of each API capabilities.

The comparison I'm compiling is supposed to be informative and non biased. The objective is to show their differences for JPOX users before choosing which API to use. The homework here is a JPOX job, since it's a product offer.

I also think that such comparision could be useful for the JPA group to evaluate the features it currently lacks in relation to JDO.
Eric Samson
Greenhorn

Joined: Sep 01, 2004
Posts: 18
In order to complete information here is a blog from someone part of both expert groups:

http://www.jroller.com/page/matthewadams?entry=quick_comparison_of_ejb_

Ciao, Erix.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: What is JDO?