5.3 Modeling Constructs in Java and Relational Models

The Java object model and the relational data model are two separate and distinct data models with separate type systems and approaches for representing data and expression computations. Table 5-1 summarizes the typical data-specific mappings that are specified between an object model and a relational schema.

Table 5-1. Mapping between object models and relational schemas

Java modeling construct

Relational modeling construct








Primary key


Foreign key


No relational equivalent


No relational equivalent

Class inheritance

One or multiple tables

Collections in JDO can be represented only as memory instances, with no direct representation as a collection in the datastore. They are instantiated on demand and discarded when they are no longer needed. There are exceptions to these general rules, and some implementations support more advanced mappings. This chapter examines several ways of representing a Java collection in a relational datastore.

If you start with a set of Java classes and let the JDO implementation generate a relational schema for them, it will choose an appropriate relational representation of your Java model and define the mapping between your classes and the relational tables. The implementation will make a number of relational schema design decisions, including choosing names for tables and columns, column types for your Java fields, and how collections and relationships in your model are represented. It may provide graphical tools or metadata extensions that you can use to help direct its schema generation and relational mapping process.

It is beneficial to understand the various mapping decisions that are made. This will allow you to assess the flexibility that various JDO implementations offer and determine which ones will integrate more easily into your current environment. We don't describe specific vendor capabilities in this book, because more JDO implementations are becoming available and each vendor's capabilities are also broadening. Vendor-specific descriptions would soon be out-of-date.

The following sections describe the various relational mapping situations and how implementations typically address them.