[
https://issues.apache.org/jira/browse/OPENJPA-2325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13559668#comment-13559668
]
Pinaki Poddar commented on OPENJPA-2325:
----------------------------------------
The problem surfaces when an instance of the derived class (using application
identity) created via new operator is merged while an instance with the same
identity value exists.
> MappedSuperClass without an @Id causes wrong identity type for the inherited
> types
> ----------------------------------------------------------------------------------
>
> Key: OPENJPA-2325
> URL: https://issues.apache.org/jira/browse/OPENJPA-2325
> Project: OpenJPA
> Issue Type: Bug
> Components: kernel
> Affects Versions: 2.3.0
> Reporter: Pinaki Poddar
> Assignee: Pinaki Poddar
> Fix For: 2.3.0
>
>
> A MappedSuperClass without a declared identity field can cause the derived
> classes that have decalred an @Id field to be wrongly using DATASTORE
> identity type because the identity type of its superclass being UNKNOWN leads
> the derived type to use the default identity type, which for JPA faced is set
> to DATASTORE.
> The suggested change modifies the logic of ClassMetaData while detecting the
> identity type whether it is an abstract (i.e. MappedSuperClass). Also
> introduced a change that distinguishes whether the identity type was ever
> evaluated versus whether identity type is indeterminable (i.e. UNKNOWN)
> which will will save few cycles for this commonly invoked operation.
> Previously for UNKNOWN type was indistinguishable from the case where
> identity type was never evaluated.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira