[hibernate-issues] [Hibernate-JIRA] Updated: (HHH-6177) Envers - problem with mapping relation when using mixed inheritance strategy
Adam Warski (JIRA)
noreply at atlassian.com
Tue Oct 18 14:56:34 EDT 2011
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-6177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Adam Warski updated HHH-6177:
-----------------------------
Affects Version/s: 3.6.7
Fix Version/s: 3.6.8
> Envers - problem with mapping relation when using mixed inheritance strategy
> ----------------------------------------------------------------------------
>
> Key: HHH-6177
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6177
> Project: Hibernate Core
> Issue Type: Bug
> Components: envers
> Affects Versions: 4.0.0.Alpha2, 3.6.7
> Environment: 3.6.0.Final
> Oracle10g
> Reporter: Michał Skowronek
> Assignee: Adam Warski
> Fix For: 4.0.0.Beta2, 3.6.8
>
> Attachments: MixedInheritanceStrategies.patch
>
>
> For the mapping like that:
> <hibernate-mapping>
> <class abstract="true" name="AbstractActivity"
> table="ACTIVITY">
> <id name="id" type="integer">
> <generator class="assigned"/>
> </id>
> <discriminator column="ACTIVITY_TYPE" type="string" length="20"/>
> <property name="sequenceNumber" type="int" not-null="true"/>
> <subclass abstract="true"
> name="AbstractCheckActivity">
> <join table="ACTIVITY_CHECK">
> <key foreign-key="FK_CHKACT_ACT" not-null="true" column="ACTIVITY_ID"/>
> <property name="durationInMinutes" type="int" not-null="true" column="DURATION_IN_MINUTES"/>
> <many-to-one name="relatedActivity"
> cascade="merge"
> foreign-key="FK_CHKACT_RELACT"
> class="AbstractActivity"
> lazy="proxy">
> <column name="RELATED_ACTIVITY_ID" not-null="false"/>
> </many-to-one>
> </join>
> <subclass name="CheckInActivity"
> discriminator-value="CHECK_IN"/>
> </subclass>
> <subclass name="NormalActivity"
> discriminator-value="NORMAL"/>
> </class>
>
> </hibernate-mapping>
> Envers generates improper audit table configuration for AbstractCheckActivity:
> <hibernate-mapping auto-import="false">
> <subclass entity-name="AbstractCheckActivity_AUD" discriminator-value="AbstractCheckActivity" table="ACTIVITY_AUD" extends="AbstractActivity_AUD">
> <join table="ACTIVITY_CHECK_AUD">
> <key>
> <column name="ACTIVITY_ID" length="255" scale="2" precision="19"/>
> <column name="REV"/>
> </key>
> <property name="durationInMinutes" insert="true" update="false" type="integer">
> <column name="DURATION_IN_MINUTES" length="255" scale="2" precision="19"/>
> </property>
> <properties name="relatedActivity">
> <property name="relatedActivity_id" insert="true" update="false" type="integer">
> <column name="RELATED_ACTIVITY_ID" length="255" scale="2" precision="19"/>
> </property>
> </properties>
> </join>
> </subclass>
> </hibernate-mapping>
> This is not a valid mapping document, because properties tag is not allowed within join. The resulting schema doesn't contain column RELATED_ACTIVITY_ID -> this property is always null for historic data (as read by AuditReader).
> The problem won't occur if I use joined-subclass inheritance strategy for the hierarchy, but it's not desirable here.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list