ResultObjectFactory Object Creation Context
-------------------------------------------

                 Key: IBATIS-382
                 URL: https://issues.apache.org/jira/browse/IBATIS-382
             Project: iBatis for Java
          Issue Type: Improvement
          Components: SQL Maps
    Affects Versions: 2.3.0
         Environment: Not relevant
            Reporter: Murtaza Goga
            Priority: Minor


The ResultObjectFactory is a great mechanism to allow the creation of objects 
and their subsequent initialization in the factory.  The ResultObjectFactory is 
invoked with the statementID and Class of the object to be created.  The 
statementID is a good discriminator for the create operation to make decisions, 
however the correlation to the object is not that strong.  The resultMap 
identifier or parameterMap identifier have a closer relationship to the object 
being created.  
This issue is about providing better context to the factory than just the 
statement identifier.

There are some options which could be used to address this improvement:
1.  Add an extended factory interface which takes a third parameter the 
executing map id.  ResultObjectFactoryMapIdAware.create(statementId, mapId, 
Class)

2.  System property to optionally append the map id to the statement id to the 
delimiter. (statementId#resultMapId)

3.  Changes in the resulMap configuration to pass custom parameters to the 
factory from the resultMap.  N child elements <factoryParam name="foo" 
value="bar />. 

I have patches for 1 and 2, but I have not spent much time on 3, since it is a 
bit intrusive.  It does offer the most flexibility though.
 

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

        

Reply via email to