db-jdo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jdo-comm...@db.apache.org
Subject [Apache JDO Wiki] Updated: MetadataMappings
Date Fri, 04 Feb 2005 00:56:23 GMT
   Date: 2005-02-03T16:56:23
   Editor: MichelleCaisse
   Wiki: Apache JDO Wiki
   Page: MetadataMappings
   URL: http://wiki.apache.org/jdo/MetadataMappings

   no comment

Change Log:

@@ -25,8 +25,55 @@
 '''Question:''' What about index element or indexed attribute of <discriminator>? These
are in the dtd, but not mentioned in Chapter18TestCoverageNotes.
+'''Note:''' I think we need some examples for inheritance in Chapter 15.
 Combining inheritance pattern with discriminator strategy, there are four cases that must
be tested.  Because there are two inheritance hierarchies in the Company model, we require
only two different mappings to cover the four cases.
 = <join> =
+Any class in the Company model could be stored in two tables that are then joined. However,
there are no obvious candidates where this really makes sense in terms of design. Note that
there is also no obvious place to use a compound primary key in the Company model, so that
functionality should be included in another model.
 = <embedded> =
+Chapter18TestCoverageNotes states that we will test <class embedded-only> in the Company
model Completeness test. I assume that means we will test the case where embedded-only is
true. The simplest case is to embed Address in both Company and Department.  Address is the
only class in the Company model that is neither a subclass nor contains a reference to another
class in the model.
+== Embedding a subclass ==
+The three patterns of inheritance allow for the data of a subclass to be stored in the superclass
table, its own table along with all the fields of the superclass, or in its own table with
only the subclass fields stored.  Is it possible to store a subclass class embedded in another
class?  What would the metadata look like?
+== Embedding a class holding a reference to another class ==
+Can you have nested embedding or relatioship mapping nested in an <embedded> element?
+Consider embedding Company in the department class:
+  <class name="Department" table="department">
+      <field name="deptid" column="deptid"/>
+      <field name="name" column="name"/>
+      <!-- Company field -->
+      <embedded>
+         <field name="companyid" column"companyid">
+         <field name="name" column"name">
+         <field name="founded" column"founded">
+         <!-- Address field of Company class-->
+         <embedded>
+            <field name="addrid" column="addrid">
+            <field name="street" column="street">
+            <field name="city" column="city">
+            <field name="state" column="state">
+            <field name="zipcode" column="zipcode">
+            <field name="country" column="country">
+         </embedded>
+      </embedded>
+  </class>
+Alternatively, might we embed Company in Employee, but store Adress in its own class:
+   <class name="Department" table="department">
+      <field name="deptid" column="deptid"/>
+      <field name="name" column="name"/>
+      <!-- Company field -->
+      <embedded>
+         <field name="companyid" column="companyid">
+         <field name="name" column"name">
+         <field name="founded" column="founded">
+         <!-- Address field of Company class - addrid is foreign key to address table-->
+         <field name="address" column="addrid">
+      </embedded>
+   </class>
+   <!-- map Address field to the address table -->
+   <class name="Address" table="address"
+        ...
+   </class>
+If these two types of mappings are possible, they should be tested.
 = Relationships =
+There are many relationships in the Company model that can be mapped as shown on RelationshipsManyToOne
and RelationshipsOneToMany. While these present some interesting parsing challenges for the
implementation, the only relationship-specific tag to be tested is <element>.

View raw message