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 ...
Get Java Data Objects now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.