ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Petr MatouĊĦek <p3tr.matou...@gmail.com>
Subject groupBy and complex keys
Date Wed, 21 Apr 2010 12:11:25 GMT
Is it possible to use complex properties in the groupBy of a resultMap?

I am processing this kind of result set:

+--------+--------+-----------+------------+------------+-------------+--------+
| planId | siteId | sectionId | positionId | bannerType | impressions | 
clicks |
+--------+--------+-----------+------------+------------+-------------+--------+
|  91852 |   1006 |         2 |          2 |         30 |           1 | 
      0 |
|  90314 |   1006 |         2 |          2 |         30 |           2 | 
      0 |
|  86961 |    557 |         2 |          2 |         30 |           1 | 
      0 |
|  86961 |    557 |         2 |          1 |         36 |          34 | 
      0 |
|  86961 |    557 |         1 |          2 |         30 |           3 | 
      0 |
+--------+--------+-----------+------------+------------+-------------+--------+

using these resultMaps:

<resultMap id="getAdInventories" class="AdInventory">
     <result property="id" resultMap="optimizationSpace.AdInventoryId" />
     <result property="adStatistics" 
resultMap="optimizationSpace.AdStatistic" />
</resultMap>

<resultMap id="AdStatistic" class="AdStatistic">
     <result property="adId" resultMap="optimizationSpace.AdId" />
     <result property="impressionCount" column="impressionCount" />
     <result property="clickCount" column="clickCount" />
</resultMap>

<resultMap id="AdId" class="AdId">
     <result property="campaignPlanId" column="campaignPlanId" />
</resultMap>

<resultMap id="AdInventoryId" class="AdInventoryId">
     <result property="siteId" column="siteId" />
     <result property="sectionId" column="sectionId" />
     <result property="positionId" column="positionId" />
     <result property="bannerType" column="bannerType" />
</resultMap>

Calling

List<AdInventory> result = executor.queryForList("getAdInventories", 
parameters);

will produce following result:

[
AdInventory[{557,1,2,30} / 0 / 0.0 / 0.0 /
    {90314=AdStatistic[90314 / 0 / 2],
     86961=AdStatistic[86961 / 0 / 3],
     91852=AdStatistic[91852 / 0 / 1]}
]
]

But expected result in my case will be:

[
AdInventory[{1006,2,2,30} / 0 / 0.0 / 0.0 /
    {91852=AdStatistic[91852 / 0 / 1],
     90314=AdStatistic[90314 / 0 / 2]}
],
AdInventory[{557,2,2,30} / 0 / 0.0 / 0.0 /
    {86961=AdStatistic[86961 / 0 / 1]}
],
AdInventory[{557,2,1,30} / 0 / 0.0 / 0.0 /
    {86961=AdStatistic[86961 / 0 / 34]}
],
AdInventory[{557,1,2,30} / 0 / 0.0 / 0.0 /
    {86961=AdStatistic[86961 / 0 / 3]}
]
]

Any idea what I am doing wrong?

Petr

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
For additional commands, e-mail: user-java-help@ibatis.apache.org


Mime
View raw message