ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From btymvios <by...@scube.co.za>
Subject Re: Collection with composite key in XML mapping
Date Fri, 13 Nov 2009 08:51:42 GMT

JIRA ticket opened, IBATIS-692.

Thanks


Jeff Butler-2 wrote:
> 
> Open a JIRA ticket.  If you can attach a path and a test case that
> would be even better.
> 
> Jeff Butler
> 
> 
> On Thu, Nov 12, 2009 at 12:17 PM, Byron Tymvios <byron@scube.co.za> wrote:
>> I have downloaded the latest trunk of iBatis 3 from SVN and did some
>> debugging. It appears as if the composite key notation
>> "#{param1=col1,param2=col2}" is never passed when building the
>> ResultMapping. This results in the composite key only being treated as a
>> regular column. The composites List in ResultMapping is only ever
>> initialized to a new ArrayList but never populated with anything
>> meaningful.
>> Then when applying the results from the ResultSet the isComposite()
>> method
>> always returns false and so the nested select is never executed.
>>
>> What is the process to follow to have this corrected?
>>
>> Regards
>>  Byron
>>
>> btymvios wrote:
>>>
>>> Hi All,
>>>
>>> Please if possible could someone assist me, I have been banging my head
>>> on
>>> this problem for near a week now and this is holding my project up
>>> seriously. I have tried everything I can think of and everything I can
>>> find.
>>> As soon as I include the composite key mapping of
>>> column=”{prop1=col1,prop2=col2}” in my xml mapping files the nested
>>> select
>>> is never executed and no error is reported/thrown. Am I doing something
>>> wrong in my mappings?
>>>
>>> I have also included the #{id, javaType=int, jdbcType=Numeric} but also
>>> with
>>> no luck.
>>>
>>> Kind Regards
>>>  Byron
>>>
>>>
>>> btymvios wrote:
>>>
>>>>
>>>> Apologies, there is a typo in my last post the "select" should have
>>>> read:
>>>>    <select id="nestedSelect" parameterType="map"
>>>> resultMap="myTypeResultMap">
>>>>        SELECT *
>>>>        FROM my_type_table
>>>>        WHERE other_id = #{id} AND client_id = #{clientId}
>>>>    </select>
>>>>
>>>>
>>>> btymvios wrote:
>>>>
>>>>>
>>>>> Hi All,
>>>>>
>>>>> Please could someone assist, I know this might be a silly question
>>>>> with
>>>>> a
>>>>> simple answer but I have tried all examples I have found, I have read
>>>>> the
>>>>> documentation and I have searched the forums and the internet but to
>>>>> no
>>>>> avail.
>>>>>
>>>>> I am using the latest beta version of iBatis 3 (beta 5) but had the
>>>>> same
>>>>> problem with beta 4. In iBatis v2x these complex key mappings worked
>>>>> fine.
>>>>>
>>>>> The documentation states:
>>>>>
>>>>> "Note: To deal with composite keys, you can specify multiple column
>>>>> names
>>>>> to pass to the nested select statement by using the syntax
>>>>> column=”{prop1=col1,prop2=col2}”. This
>>>>> will cause prop1 and prop2 to be set against the parameter object for
>>>>> the
>>>>> target nested select statement."
>>>>>
>>>>> However when I specify this with multiple columns for a collection the
>>>>> nested select is never run and no error is reported. In the referenced
>>>>> "select" I am accessing the parameters by #{param1Name} and
>>>>> #{param2Name}
>>>>> (where param1Name is the name of the first param etc..).
>>>>>
>>>>> If I remove this and only specify one parameter like column="col_1"
>>>>> then
>>>>> the referenced "select" is executed and the same param is used for
>>>>> both
>>>>> parameter mapping in the select. So the collection mapping can access
>>>>> the
>>>>> nested select and return a list of the correct type (albeit with a lot
>>>>> of
>>>>> incorrect rows due to not matching on the full complex key) but not
>>>>> when
>>>>> I have complex keys specified.
>>>>>
>>>>> What is the correct notation for using multiple columns for complex
>>>>> keys
>>>>> from a "collection" mapping. There are no examples in the
>>>>> documentation
>>>>> other than the excerpt above. I have also not found any workable
>>>>> examples
>>>>> on the internet.
>>>>>
>>>>> I have found references on the internet to accesing params with
>>>>> @{param}
>>>>> instead of #{param} which I have also tried with no luck. I have also
>>>>> tried specifying paramaterType="map" on the nested select with no
>>>>> results.
>>>>>
>>>>> ResultMap (XML file 1):
>>>>> <resultMap id="myResultMap" type="ResultClass">
>>>>>    <id property="id" column="id" />
>>>>>    <id property="clientId" column="client_id" />
>>>>>    <result property="someProp" column="some_prop" />
>>>>>    <collection property="myList" column="{id=id,clientId=client_id}"
>>>>> javaType="ArrayList" ofType="MyType"
>>>>> select="other.xml.namespace.MyTypeNS.nestedSelect" />
>>>>> </resultMap>
>>>>>
>>>>> Select (XML file 2):
>>>>> <mapper namespace="other.xml.namespace.MyTypeNS">
>>>>>    <resultMap id="myTypeResultMap" type="MyType">
>>>>>         <!-- mapping of MyType -->
>>>>>    </resultMap>
>>>>>    <select id="nestedSelect" parameterType="map"
>>>>> resultMap="myTypeResultMap">
>>>>>        SELECT *
>>>>>        FROM my_type_table
>>>>>        WHERE other_id = #{id} AND client_id = #{client_id}
>>>>>    </select>
>>>>> </mapper>
>>>>>
>>>>> Thanks for your time.
>>>>> Byron
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: user-java-help@ibatis.apache.org
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Collection-with-composite-key-in-XML-mapping-tp26208650p26333241.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
For additional commands, e-mail: user-java-help@ibatis.apache.org


Mime
View raw message