[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[eclipselink-users] inheritance with TABLE_PER_CLASS
|
Title: inheritance with TABLE_PER_CLASS
Hi,
i want to use inheritance for a hierarchy where the base class contains ALL attributes and the 2 subclasses none. But the subclasses are mapped to different database tables.
I know that polymorphic associations are not possible in JPA 1.0 but are there ways to capture this scenario in EL?
Below an xml snippet:
Base class:
<orm:entity class="ChangeTrackingExportEntryBase">
<orm:inheritance strategy="TABLE_PER_CLASS"/>
<orm:attributes>
<orm:id name="id">
<orm:column column-definition="decimal" length="18" name="ID"/>
<orm:generated-value generator="SeqChangeTrackingExportEntry"/>
</orm:id>
<orm:basic name="attributeName">
<orm:column length="128" name="ATTRIBUTENAME" nullable="true"/>
</orm:basic>
<orm:basic name="domainObjectName">
<orm:column length="1000" name="DOMAINOBJECTNAME" nullable="true"/>
</orm:basic>
<orm:basic name="acknowledged">
<orm:column name="ACKNOWLEDGEDATE" nullable="true"/>
</orm:basic>
<orm:basic name="exported">
<orm:column name="EXPORTDATE" nullable="true"/>
</orm:basic>
<orm:basic name="created">
<orm:column name="TSCREATE" nullable="false"/>
</orm:basic>
<orm:basic name="objectId">
<orm:column column-definition="decimal" length="10" name="DOMAINOBJECTENTRYID" nullable="false"/>
</orm:basic>
<orm:version name="versionTimestamp">
<orm:column name="TSUPDATE" nullable="false"/>
</orm:version>
<orm:many-to-one name="company" fetch="LAZY">
<orm:join-column column-definition="decimal" length="18" name="ID_COMPANY" nullable="true"/>
<orm:cascade>
<orm:cascade-merge/>
</orm:cascade>
</orm:many-to-one>
<orm:many-to-one name="changeExportRegistration" fetch="LAZY">
<orm:join-column column-definition="decimal" length="18" name="ID_CHANGEEXPORTREGISTRATION" nullable="false"/>
<orm:cascade>
<orm:cascade-persist/>
<orm:cascade-merge/>
</orm:cascade>
</orm:many-to-one>
<orm:many-to-many name="changeTrackingLogEntries" mapped-by="changeTrackingExportEntries">
<orm:cascade>
<orm:cascade-persist/>
<orm:cascade-merge/>
</orm:cascade>
</orm:many-to-many>
<orm:many-to-one name="confirmedState" fetch="LAZY">
<orm:join-column column-definition="decimal" name="ID_CONFIRMEDSTATE" nullable="true"/>
<orm:cascade>
<orm:cascade-merge/>
</orm:cascade>
</orm:many-to-one>
</orm:attributes>
</orm:entity>
The subclasses:
<orm:entity class="ChangeTrackingExportEntry">
<orm:table name="BUYING.CHANGETRACKINGEXPORTENTRY"/>
</orm:entity>
<orm:entity class="ChangeTrackingExportEntryHistory">
<orm:table name="BUYING.CHANGETRACKINGEEHIST"/>
</orm:entity>
Regards, Markus