db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Watzek <mwa.t...@spree.de>
Subject Inheritance mapping 3
Date Wed, 07 Dec 2005 17:33:48 GMT

inheritance mapping 3 is an optimization of mapping 1:

Mapping 1 specifies a table for each class in the inheritance hierarchy. 
These tables only contain columns for the declared fields. Tables of 
subclasses refer tables of superclasses via FKs.

In contrast, mapping 3 only specifies tables for concrete classes. 
Fields of abstract classes are mapped by inheritance strategy 

As class Insurance is abstract, it is not mapped to its own table in 
mapping 3. Instead, its fields are mapped to tables dentalinsurance and 
medicalinsurance. Due to the fact that class Insurance is the top most 
class in the inheritance hierarchy, tables dentalinsurance and 
medicalinsurance do not specify inheritance FKs.

For this reason, it seems that the insurance hierarchy in mapping 3 has 
the same problem as the person hierarchy in inheritance mapping 2: There 
are not discriminator columns and there are not inheritance FKs. This 
means that implementations must support union joins for relationship 
navigation in order to retrieve the runtime type. As a consequence, the 
TCK would have to check for union join support when mapping 3 is 
executed (as we decided for mapping 2).

However, there is a little difference on how the company model handles 
insurance relationships vs. employee relationships: Insurance 
relationships are specified to leaf classes of the inheritance hierarchy 
(DentalInsurance and MedicalInsurance). For this reason, the runtime 
type of an insurance relationship is the same as the declared type.

Thus, I'm not sure on how to proceed with mapping 3. There are several 

1) Drop mapping 3.
2) Make mapping 3 optional as we decided for mapping 2.
3) Leave it as is.

What do you think?

Michael Watzek                  Tech@Spree Engineering GmbH
mailto:mwa.tech@spree.de        Buelowstr. 66
Tel.:  ++49/30/235 520 36       10783 Berlin - Germany
Fax.:  ++49/30/217 520 12       http://www.spree.de/

View raw message