what is the difference between JDO (JSR 243) and SDO (JSR 235) in Java; what set of open source providers are available for these java specifications
-
http://en.wikipedia.org/wiki/Java_Data_Objects http://en.wikipedia.org/wiki/Service_Data_Objects – Matt Ball Oct 01 '11 at 15:23
-
DataNucleus implements the full range of JDO specifications and is used by many companies. I don't know of any company that uses SDO to any degree. – DataNucleus Oct 02 '11 at 13:36
2 Answers
From this article:
[...] JDO looks at the persistence issue only [...] whereas SDO is more general and represents data that can flow between any J2EE tier, such as between a presentation and business tier.
EclipseLink is one SDO provider, Apache's DB project is one JDO implementation.

- 158,873
- 26
- 254
- 302
-
Can i achieve all the functionality using SDO which JDO can accomplish ? – Laxmikanth Samudrala Oct 01 '11 at 19:41
-
Correction : Apache JDO project includes the API and TCK for JDO. It does not have an implementation. DataNucleus is the "Reference Implementation" for JDO 2, 2.1, 2.2 and 3.0 – DataNucleus Oct 02 '11 at 14:02
-
Ah, I see. Unfortunate version numbering, though; Version 3.0 implements 3.1. 2.1 support 3.0. 1.0 supports 2.2. *sigh* – Dave Newton Oct 02 '11 at 14:07
-
For an excerpt you can read the "Request" part on the appropriate JSR pages for JDO and SDO.
In practice and for quick starters: JDO is the father of JPA.
JPA is actually used and usable (this is not for granted in the Java EE world), Hibernate and EclipseLink are two well known opensource implmenetations of JPA.
SDO: I have neither seen it in any project I've been, nor have I heard about it so far. Reading the Blurb on the JCP Page made me feel that this is one of those overgeneralized and clumsy Java EE standards not designed for real life.
Feel free to ignore SDO for now while digging into JPA a bit.

- 37,782
- 12
- 108
- 140

- 63,967
- 15
- 92
- 126