Serialization
When an instance is serialized in Java, the graph of instances
reachable via non-transient
fields is
written to an output stream. In this context, non-transient
refers to fields that have not been
declared transient
in Java. Java’s
transient
fields and JDO’s managed
fields are independent concepts, so any combination of Java’s transient
or non-transient
fields with JDO’s persistent,
transactional, or transient fields is possible in your persistent
classes.
You can serialize and deserialize instances of your persistent classes. You do not need to do anything special for serialization to work. In fact, the JDO implementation automatically fetches the graph of instances, even if they have not yet been loaded into the JVM from the datastore.
However, you should be aware that the instances reachable from the
instance being serialized might include a large number of instances from
the datastore. If your persistent classes are highly interconnected, you
may unintentionally serialize a large percentage of your datastore. You
can use Java’s transient
modifier to
prevent the serialization of referenced instances. Chapter 4 showed how to make Java
transient
fields persistent in JDO by
setting the persistent-modifier
attribute to "persistent
“. This lets
you serialize persistent instances in JDO without extracting and
serializing a large portion of the data from your datastore.
JDO enhancement allows you to serialize transient and persistent instances of persistent classes to a format ...
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.