References
The datastore’s representation of a reference to an instance
(either a class or interface reference) depends on the identity type
defined for the reference’s class. The class’s identity type determines
the primary-key (or unique-key) columns of the class’s table.
In addition, a class may be mapped to one or more tables. A Java
reference is represented in the datastore by a foreign key that refers to the tables associated with the
class of the reference. For example, Example 5-1 defined the Movie table. Example 5-2 defines a Role table for the Role class in the com.mediamania.content package. The Role class has a reference, named movie, to the Movie class. On line [1], the Role
table defines a foreign key to reference the primary key of the Movie table.
Example 5-2. Foreign key used to reference a primary-key column
CREATE TABLE Role (
oid INTEGER,
name VARCHAR(20),
movie INTEGER,
PRIMARY KEY(oid),
FOREIGN KEY(movie) REFERENCES Movie(oid) [1]
)Your application does not have to deal with primary and foreign keys; it simply uses standard Java syntax, using the reference to access the object in memory. You also do not need to specify anything specific in the metadata for a reference; its declaration in Java provides all of the necessary information.
JDO supports Java’s polymorphism, allowing a reference to refer to an instance of any subclass of the reference’s declared class. A JDO implementation must be able to determine the type of the instance being referred to, so that ...
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