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 >> > > -- View this message in context: http://old.nabble.com/Collection-with-composite-key-in-XML-mapping-tp26208650p26287364.html Sent from the iBATIS - User - Java mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org For additional commands, e-mail: user-java-h...@ibatis.apache.org