Chapter 4. Defining Persistent Classes

A Java program consists of many different kinds of classes, including:

  • Classes that model business objects

  • Classes that serve as user interface objects

  • Classes that provide various kinds of glue between different parts of the application

  • System classes of various sorts

JDO focuses on the classes whose data has a corresponding representation in the underlying datastore: classes that represent business objects or classes that represent application-specific data that must remain persistent between application invocations.

These classes may represent data that comes from a single entity in the datastore, or they may represent data from several entities; JDO doesn’t place any limitations on where the data comes from. For example, the data may come from:

  • A single object in an object-oriented database

  • A single row of a relational database

  • The result of a relational database query, consisting of several rows

  • The merging of several tables in a relational database

  • The execution of a method from a data retrieval API that accesses an Enterprise Resource Planning (ERP) system

A JDO implementation maps data from its representation in the datastore to its representation in memory as a Java object, and vice versa. The mapping is based on metadata, which must be available both when the Java class is enhanced and at runtime. JDO does not standardize the mapping to a specific datastore.

Get Java Data Objects now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.