You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Aram Mkhitaryan (JIRA)" <ib...@incubator.apache.org> on 2007/07/25 07:40:31 UTC
[jira] Created: (IBATIS-447) type collector definition is needed
type collector definition is needed
-----------------------------------
Key: IBATIS-447
URL: https://issues.apache.org/jira/browse/IBATIS-447
Project: iBatis for Java
Issue Type: New Feature
Components: SQL Maps
Affects Versions: 2.3.0
Reporter: Aram Mkhitaryan
Priority: Critical
I have already posted this feature/improvement in http://opensource.atlassian.com/confluence/oss/display/IBATIS/iBATIS+3.0+Whiteboard?focusedCommentId=9142285#comment-9142285
and initial problem is reported in https://issues.apache.org/jira/browse/IBATIS-446
I think this may/should be available before 3.0 is released!
The Problem:
Yesterday I was mapping a result to the java.util.Set
<resultMap ...>
...
<result ...
javaType="java.util.Set" select="findEmployees" />
</resultMap>
and got a lot of trouble because when the lazy loading was enabled the support for Set was broken
Solution:
and here comes suggestion ...
what if we have a new attribute "collector" or new collector handler mapping tag?
<result ...
javaType="java.util.Set" select="findEmployees"
collector="myEmployeeCollector" />
<collectorHandler javaType="XXX" collector="myCollectorForXXX" />
this collector will be responsible for handling selected objects and putting in the specified javaType object
this approach will make the code work faster, for now, when lazy loading is not enabled,
since the result objects are always collected in java.util.List and then new HashMap(list) is called for type conversion,
as you see/know, that constructor copies values from the list, but if we have collectors for the defined types (like TypeHandler, TypeHandlerCallback) we could add employees even in our domain objects like office.addEmployee(employee)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.