Let me put a disclaimer first: I'm one of the developers of Versant JPA.
To work with Versant JPA it should be sufficient to have basic JPA skills.
We provide a tutorial which should run out of the box after you have installed
the "Versant JPA" Technical Preview and the supplied Eclipse plug-in. Just have a look into this and the provided "Getting Started with Versant JPA" manual to get the first impressions how easy to use it is.
I disagree with some statements from DataNucleus:
Yes, Versant is an ODBMS and not an RDBMS, thus we ignore anything which is just specific
to mapping - your Java data model is virtually the same as the data model in the Versant database.
However apart from all mapping related stuff, JPA is a natural API for an object database as well. I disagree, that there is a big correlation between the design of JPQL and the fact, that JPA was designed with RDBMS in mind.
(Actually Microsoft has proven this by abstracting LINQ to a datastore agnostic level.)
All the big differences between Versant JPA and RDBMS based JPA implementations are described in a separate chapter in our "Getting Started with JPA" guide.
The biggest one might be our restriction, to have an @Id field of type "long" or "java.lang.Long", which is automatically set by our runtime.
We do also have a JDO implementation, but I would recommend to try out our Versant JPA technical preview (as the term "preview" suggests, it is not feature complete yet).
Christian Romberg