Reuse relationship selection 
-----------------------------

                 Key: OPENJPA-2099
                 URL: https://issues.apache.org/jira/browse/OPENJPA-2099
             Project: OpenJPA
          Issue Type: Improvement
            Reporter: Pinaki Poddar
            Assignee: Pinaki Poddar


Related entities are often loaded via a separate select operation when an 
unloaded field is accessed. The select operation for a relationship field 
structurally (i.e. which tables it joins to or what columns it selects) is 
invariant at instance level. Only thing that changes across entity instances is 
the foreign/primary key identifier values used in joining. The major 
computation cost is paid to analyze to build the select structure by analyzing 
the mapping metadata of class/field involved. As noted, this computation is 
invariant for each instance access except the primary/foreign key values 
involved. 
However, the core infrastructure for this frequent operation (because it is 
carried out whenever a relationship field is loaded for every instance) is not 
designed for reuse. The select gets constructed every time, the class/field 
mapping metadata gets analyzed every time, before the select is executed on the 
database. 
What is required to avoid this repeated and unnecessary cost is to reuse a 
select instance computed for every relationship field only once but binding 
different parameters on every execution.      
The task is non-trivial because of the select abstraction (a highly complex and 
critical data structure) is not designed with such parameter rebinding in mind. 
This issue attempts to remedy that limitation. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to