[
https://issues.apache.org/jira/browse/OPENJPA-1613?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12859385#action_12859385
]
Donald Woods commented on OPENJPA-1613:
---------------------------------------
Agree. In this case where AbstractSuperclass.java only has the @Transient on a
getter and no parent classes to examine, then we'd use the old behavior and set
the access type as property.
If we do this, then I'd also like to see a WARN message logged, letting the
user know we're setting the access type based on @Transient and they should
really set an explicit type instead (as this behavior may not be portable and
could change in future Specs.) Also, we should add a WARN when
getDefaultAcessType() is called and we end up defaulting to ACCESS_FIELD, with
the same type of warning message.
> Exception thrown when enhancing a (property access) class that has an
> abstract @MappedSuperclass with no annotated properties
> -----------------------------------------------------------------------------------------------------------------------------
>
> Key: OPENJPA-1613
> URL: https://issues.apache.org/jira/browse/OPENJPA-1613
> Project: OpenJPA
> Issue Type: Bug
> Components: kernel
> Affects Versions: 2.0.0-beta2, 2.0.0-beta3
> Reporter: Simon Droscher
> Assignee: Jeremy Bauer
> Fix For: 2.0.1
>
> Attachments: abstract-subclass.patch,
> OPENJPA-1613-failing-code-changes.diff, OPENJPA-1613-tests.diff
>
>
> If you have a class (using property access) that has an abstract
> @MappedSuperclass that happens to have no annotated methods, you get the
> following exception when enhancing:
> org.apache.openjpa.util.MetaDataException: "implicit property access" for
> class "org.apache.openjpa.persistence.simple.SubclassPerson" is not
> consistent with "implicit field access" used by its persistent superclass
> "org.apache.openjpa.persistence.simple.AbstractSuperclass". All persistent
> classes in an inheritance hierarchy must use a single implicit field or
> property based access style or explicitly declare an access style.
> Presumably the enhancer is deciding incorrectly that the superclass is using
> field access. A workaround is to annotate the superclass with
> @Access(AccessType.PROPERTY) so the enhancer doesn't make this assumption,
> but that is not JPA 1.0 backwards compatible.
> This did not occur in any of the OpenJPA 1.* versions
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.