Improve interface based domain model support
--------------------------------------------
Key: OPENJPA-977
URL: https://issues.apache.org/jira/browse/OPENJPA-977
Project: OpenJPA
Issue Type: New Feature
Components: kernel
Reporter: Pinaki Poddar
OpenJPA supports interfaces both via @ManagedInterface and @Type.
However, my recent tests are showing several short comings in this area as well
as I notice lack of good example or documentation of this support.
One obvious issue seen in the test is queries do not work on interface. If
InterfaceA is an interface implemented by X and Y, it will be natural to expect
that a simple query 'select a from InterfaceA a' should return the combined
extent of X and Y. But unfortunately the query fails to parse.
The other not so obvious problem I notice is loading of relations that are
declared to be interfaces. OpenJPA traditionally stored such references in
database as encoded string with class name and identity value. And, on load, it
will decode the string to determine the exact type of the instance and its
primary key. I remember using it but currently it does not seem to. It seems
that other changes in enhancer, or constructing identity object from a String
have changed to cause such regression. Unfortunately, the test coverage is
somewhat shallow for this support to catch these regressions.
Suggested action:
1. Document the nature and limitation of interface support.
2. Create a comprehensive test suite to evaluate the capability and limitation
of this support.
3. Find out the cause of regression of @Type and why the stringed identity
decoding is broken.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.