You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Kai Grabfelder (JIRA)" <ib...@incubator.apache.org> on 2009/05/08 18:56:45 UTC

[jira] Closed: (IBATIS-597) Use same resultmap in a result

     [ https://issues.apache.org/jira/browse/IBATIS-597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kai Grabfelder closed IBATIS-597.
---------------------------------

    Resolution: Invalid

please ask questions like this on the user mailing list. The answer to your question is that you have to duplicate the adress mapping, there is no other way to do that in iBATIS.

> Use same resultmap in a result
> ------------------------------
>
>                 Key: IBATIS-597
>                 URL: https://issues.apache.org/jira/browse/IBATIS-597
>             Project: iBatis for Java
>          Issue Type: Wish
>          Components: SQL Maps
>         Environment: Not significant 
>            Reporter: Emilio Gutiérrez León
>
> Hello.
> My question is about use of the one resultmap more than once in a result. Sample :
> <resultMap id="personMapping" class="Person">
>    ...
>    <result property="name" column="NAME" />
>    <result property="personalAdress" resultMap="AdressMapping />
>    <result property="jobAdress"            resultMap="AdressMapping />
> </resultMap>
> <resultMap id="AdressMapping " class="Adress">
>   ...
>   <result property="street" column="STREET" />
>   <result property="number" column="number" />
> </resultMap>
> <select id="person_find" parameterClass="Person" resultMap="personMapping">
>                 SELECT *
>                      FROM PERSON, ADRESS personal, ADRESS job
>                   WHERE PERSON_PERSONAL_ADDRESS_ID = personal.ADDRESS_ID 
>                          AND PERSON_JOB_ADDRESS_ID = job.ADDRESS_ID
>                          AND PERSON_ID = #id#
> </select>	
> <select id="adress_find" parameterClass="Adress" resultMap="adressMapping">
>                SELECT *
>                    FROM ADRESS 
>                   <dynamic prepend="where">
>                       <isNotNull property="id" prepend=" and ">ADRESS_ID = #id#</isNotNull>
>                   </dynamic>
> </select>	
> When i use the select  'person_find', the result is composed by the data of the person, data of his personal adress and data of his job adress. When i see the result of the query in my person object, the personal adress and the job adress is the same because Ibatis can´t identify two mappings of the same table.
> In this sample, the 'adress_find' take one adress if 'id' is completed or all adresses if 'id' is null. This is necesary in my application.
> How can resolve this without duplicate 'address_find' ?
> Thanks

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.