[ https://issues.apache.org/jira/browse/IBATISNET-243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gilles Bayon closed IBATISNET-243. ---------------------------------- Resolution: Fixed In SVN > Lists of primitives in result maps doesn't work > ----------------------------------------------- > > Key: IBATISNET-243 > URL: https://issues.apache.org/jira/browse/IBATISNET-243 > Project: iBatis for .NET > Issue Type: Bug > Components: DataMapper > Affects Versions: DataMapper 1.6.1 > Reporter: Gilles Bayon > Assignee: Gilles Bayon > Fix For: DataMapper 1.6.2 > > > Detected by Miika Mäkinen, Nicholas Piaseck > I have a Coupon class that contains an integer list of BrandIds that > specifies which brands of product the coupon is good for. We don't want > the whole Brand object because it contains a lot of information that's > not necessary for the coupon's CalculateDiscount() method to function, > so we'd just like a list of integers returned from iBATIS. int[], > List<int>, just a list of integers of some sort. > The relevant parts of the database tables look like this: > Coupons: > CouponId (PK) > Code > Coupons_Brands: (M:N relationship table) > CouponId (FK) > BrandId (FK) > To avoid the N+1 selects, we tried a SQL statement like the following: > SELECT > cou.CouponId AS CouponId, > cou.Code AS CouponCode, > cou_b.BrandId AS CouponBrandId, > FROM SkiviezInv.Coupons AS cou > LEFT OUTER JOIN Coupons_Brands AS cou_b > ON cou.CouponId = cou_b.CouponId > But then we got stuck at defining the <resultMap>. Just using the > property and column attributes doesn't work ("no type handler for List`1 > is registered"). The furthest we got was defining another result map for > the integer type, like this: > <resultMap id="ResultMapCoupon" class="Coupon" groupBy="Id"> > <result column="CouponId" property="Id" /> > <result > property="BrandIds" > resultMapping="Coupon.ResultMapCouponBrandId" /> > </resultMap> > <resultMap id="ResultMapCouponBrandId" class="int"> > <result property="value" column="CouponBrandId" /> > </resultMap> > This set up would indeed create a List<int> with the proper Count (e.g., > two BrandIds), but they're always all set to 0. I -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.