You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Gilles Bayon (JIRA)" <ib...@incubator.apache.org> on 2007/09/17 21:10:44 UTC

[jira] Closed: (IBATISNET-243) Lists of primitives in result maps doesn't work

     [ 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.