Reading Outside a Transaction
NontransactionalRead
allows your application to access the datastore without
ever beginning a transaction; it also allows you to access the datastore
and read cached instances and fields between completing one transaction
and beginning the next. This allows read-only applications nearly full
access to the features of JDO, without the overhead of beginning and
completing transactions. Access in the NontransactionalRead
case includes iterating
extents, querying the datastore, accessing persistent field values, and
navigating among instances using persistent relationships.
Note that you must always have an active transaction in order to insert new persistent instances, delete existing instances, or change existing data in the datastore.
One use for the NontransactionalRead
mode of operation is to
access slowly changing information. For example, access to the MediaContent
instances can be
nontransactional, because in most cases the information is static. At
times, the datastore might be updated with new MediaContent
instances, but for the most part,
the information does not change.
When executing your application outside a transaction, the cache contains persistent instances whose field values came from the datastore, but there is no guarantee that the field values are consistent with the current datastore contents, or are even consistent with other field values from the same persistent instance. This is because field values are retrieved from the datastore ...
Get Java Data Objects now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.