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.

Reply via email to