So far, the examples have used a simple Java class to demonstrate basic concepts. JDO can, of course, be used with much more sophisticated classes than this. In addition to supporting fields of primitive Java types and system classes like String, JDO can handle object references, Java collections, and inheritance of both classes and interfaces.
This section outlines what can and can't be used when developing a persistence-capable class, including the following:
The basic field types that can be used within a persistence-capable class.
Using references to persistence-capable classes, non-persistence-capable classes, and interfaces.
Using standard Java collections.
Support for inheritance.
The class and field modifiers ...