JPA1 allows objects of classes to be versioned. The version is typically used as a way of
detecting if the object has been updated by another thread or EntityManager since retrieval
using the current EntityManager - for use by Optimistic Transactions.
JPA1s mechanism for versioning of objects in RDBMS datastores is to mark a field of the class
to store the version. The field must be Integer/Long based.
With JPA1 you can specify the details of this
or alternatively using annotations
public class User
The specification above will use the "version" field for storing the version of the object.
DataNucleus will use a "version-number" strategy for populating the value
(see JDO Versioning for details of the strategies that