Cache should follow structure of hierarchical resultmaps
--------------------------------------------------------

         Key: IBATIS-211
         URL: http://issues.apache.org/jira/browse/IBATIS-211
     Project: iBatis for Java
        Type: Improvement
  Components: SQL Maps  
 Environment: n/a
    Reporter: Reuben Firmin


Assume 3 sqlMaps, A, B, C.

A has resultMapA, which contains a mapping to a select query in B, which in 
turn maps to Cs. In other words, we have:
B[] A.getBs();
C[] B.getCs();

When a cache (cacheA) is implemented at A, the Bs and Cs are also cached in it 
(cacheA), despite the existence of cacheB and cacheC at their respective 
levels. This means that flushOnExecute statements must be defined for B and C 
on cacheA's declaration, *i.e. within A's namespace*. This is error prone, 
since development on B or C is affected by the cache on A; somebody adding or 
renaming a mutator on B or C would not necessarily know that they have to add 
or edit a corresponding flushOnExecute to cacheA. 

The logic (perhaps optional) should be:

If resultMapA maps to other sqlMaps, and those sqlMaps have their own caches, 
then *defer to those caches to cache those objects*.



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to