You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by jd...@db.apache.org on 2005/02/03 02:03:17 UTC

[Apache JDO Wiki] Updated: MetadataMappings

   Date: 2005-02-02T17:03:17
   Editor: MichelleCaisse
   Wiki: Apache JDO Wiki
   Page: MetadataMappings
   URL: http://wiki.apache.org/jdo/MetadataMappings

   no comment

Change Log:

------------------------------------------------------------------------------
@@ -1,3 +1,18 @@
 = Inheritance =
+
 The Company model provides two inheritance hierarchies: Person <- Employee <- FullTimeEmployee, PartTimeEmployee; and Insurance <- MedicalInsurance, DentalInsurance.
+
+There are three inheritance patterns possible:
+ *One Table - All rows in the inheritance hierarchy are stored in one table that has a superset of the required columns plus a discriminator column to specify the class of that row.
+ *Joined Tables - Each class, including the parent class, maps to its own table. The tables are joined by their primary keys.
+ *Subclass Tables - each subclass maps to a table that contains columns for both the subclass and its parent class.
+
+The inheritance strategies are mapped by use of the metadata elements <inheritance> and <discriminator>. The following metadata cases must be tested:
+
+||inheritance pattern||base class||subclasses||
+||One Table|| <inheritance strategy="new-table">|| <inheritance strategy="superclass-table">||
+||Joined Tables|| <inheritance strategy="new-table">|| <inheritance strategy="new-table">||
+||Subclass Tables|| <inheritance strategy="no-table">|| <inheritance strategy="new-table">||
+
+'''Question:''' <inheritance> takes a <join> element according to the dtd.  Is this used to specify the primary key in the Joined Tables pattern?  If so, how is it used, syntactically?