Nondurable Identity

With nondurable identity your objects will not have a unique identity in the datastore. This type of identity is typically for log files, history files etc where you aren't going to access the object by key, but instead by a different parameter. In the datastore the table will typically not have a primary key. To specify that a class is to use nondurable identity with JDO2 you would add the following to the MetaData for the class.

<class name="MyClass" identity-type="nondurable">
...
</class>

or using annotations, for example

@PersistenceCapable(identityType=IdentityType.NONDURABLE)
public class MyClass
{
    ...
}

DataNucleus provides limited support for "nondurable" identity currently. Any class marked as "nondurable" will, for RDBMS datastores, have a table with no primary-key. It will support persistence of records into the datastore. Records can be deleted using SQL bulk delete statements. What is not currently supported is the ability to delete a particular object, or update a particular object without affecting all others with the same parameter values.