Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.0.1, 2.1.2, 2.2.2, 2.2.1.1
-
OpenJPA as bundled on WebSphere 8.5.5
Description
Patch for issue OPENJPA-2233 introduced a message when a Embeddable entity defines an ID property, which the Enhancer can't properly add a helper method (getIDOwningClass).
— openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java (revision 1325823)
+++ openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java (working copy)
@@ -1150,6 +1150,11 @@
if (_meta.hasAbstractPKField() == true)
+
+ if (_meta.isEmbeddedOnly()
+ && _meta.getIdentityType() == ClassMetaData.ID_APPLICATION)
addNewObjectIdInstanceMethod(true);
addNewObjectIdInstanceMethod(false);
The problem is that this message is also emitted when inheriting from a MappedSuperClass, containing an Id field/property, which is a very common pattern.
As the persistence engine of OpenJPA works perfectly with such a class hierarchy (and even the Enhancer with the complement of that patch just skips adding a call to the non-added helper method), it is pointless to alarm operations personnel with a message labeled and tagged as an error.
Therefore I suggest to log it as a warning, also editing the corresponding message text to better indicate that the Enhancer will simply not add/call the helper method, skipping a potential optimization.
Attachments
Issue Links
- is related to
-
OPENJPA-2233 Failed to invoke pcGetIDOwningClass method on embeddable entity with ID annotation
- Closed
- relates to
-
OPENJPA-2478 Erroneous message from the enhancer when a Mapped Superclass contains an @Id.
- Closed