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.

Reply via email to