Java Classes and Metadata
You can make most of your classes persistent in a JDO environment.
JDO has the ability to make plain ordinary Java
objects (POJOs) persistent. This includes classes that
represent the entities in your application domain, utility classes that
model other data, and abstractions you need to support your
application’s functionality. Your classes can also use all of Java’s
class and field modifiers, including: private , public , protected , static , transient , abstract , final , synchronized
, and volatile
. In some cases, as we will explore later in this chapter,
some of these modifiers cannot be used with persistent fields.
The persistent state of a persistent class is represented entirely
by the values of its Java fields. If you have a class that has some
state that needs to be preserved and it depends on inaccessible or
remote objects (e.g., it extends java.net.SocketImpl or uses Java Native Interface (JNI)), you cannot make the class
persistent. You also cannot have a persistent nonstatic inner class, because the state of the inner
class instance depends on the state of its enclosing instance.
With a few exceptions, system-defined classes (those defined in
java.lang, java.io, java.net, etc.) cannot be persistent. They are
also not allowed to be the type of a persistent field. This includes
classes such as System , Thread , Socket , and File . We list the system classes that are supported in Table 4-2 later in this chapter. You may be using an implementation ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access