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 <by...@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-unsubscr...@ibatis.apache.org >> For additional commands, e-mail: user-java-h...@ibatis.apache.org >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > For additional commands, e-mail: user-java-h...@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-unsubscr...@ibatis.apache.org For additional commands, e-mail: user-java-h...@ibatis.apache.org