Automatic translation

Archives

August 2009
L My Me J V S D
"July September "
A 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

Contributors

DataNucleus

Presentation of an ORM that goes.

DataNucleus (former JPOX) http://www.datanucleus.org is an open source project of the eponymous company.
This is an ORM along with Toplink or Hibernate, simplifying can be summarized by saying that Hibernate is the implementation of JPA and made DataNucleus is the reference implementation of JDO standard.
Details
Current version: 1.1
Java standards supported: JDO2.3, JPA1, JTA.
License: Apache License 2.0
Support for major DBMS market.
Support JDK5 and annotations (JPA and JDO).
Support Eclipse, Maven, ANT, native integration with Spring

If DataNucleus back on center stage is mainly because it is used by the platform Google Application Engine (GAME) for persistence. The standard JDO implementation being put forward but JPA is possible (but with restrictions imposed by the implementation of Google).
Google has clearly chosen in the JDO persistence standards battle against a little-a walk to the current trend plebiscite JPA. This can be understood by taking into account the files for the standard JDO persistence (and a reconciliation easier with Hadoop).

Main differences with Hibernate (without debate JDO versus JPA)

In addition to the support system DBMS as persistent: LDAP, files, support JSON, Excel documents, XML, ODF (open data format for office applications inspired by OpenOffice).

Implementation of an interface to access REST entities persisted (for simple configuration).
We can create, edit, query entities with REST methods automatically generated (it's a little gadget for production use but why not for exports of mass).
But the main difference is structural.
Where Hibernate uses reflection and java proxy, rather improving DataNucleus byte code (the code needed to run DataNucleus is generated and added to the byte code).
Thus the runtime performance are improved and better management of lazy loading (the type of classes persisted is always known), etc..
DataNucleus natively supports JMX which facilitates supervision.
Of course there are also drawbacks:

  • Need for enrichment phase of the byte code
  • Hibernate Community less

Other differences

Query language: DataNucleus based on JDOQL.
Hibernate Criteria API: No equivalent in DataNucleus.
Hibernate Shard (horizontal partitioning): No counterpart in DataNucleus.
Hibernate Validator: No equivalent in DataNucleus, but compensated with the arrival of the JSR 303 (validation of constraints on the bean with annotations in the model specification based on Validator).
Hibernate Search: No equivalent in DataNucleus.
More info: www.datanucleus.org/products/accessplatform_1_1/datanucleus-accessplatform.pdf