ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erica Cody" <AID9...@idpa.state.il.us>
Subject Re: Help!! Problems with Nested GroupBy
Date Wed, 12 Apr 2006 12:47:10 GMT
Okay - I got a copy of the most recent code yesterday from Jeff, but that did not resolve the
problem.  I am still not getting back the employees on the nested groupBy.  

I can see I am getting the correct number of rows for the join, but the mapping appears to
populate an employee list (e.g. role) for the business class before it actually maps the role.
 What I am getting back is 4 Business classes with empty employee lists.  Then where it puts
the role, I don't know because I can't seem to find it anywhere!!  

Has anybody else dealt with this problem?   Thanks E

Erica,

Start by using the version of iBATIS in SVN... there is a known bug in 2.1.7 and before when
nesting groupBy's.

Regards,
Sven

>----- Oorspronkelijk bericht -----
>Van: Erica Cody [mailto:AID9C23@idpa.state.il.us] 
>Verzonden: vrijdag, april 7, 2006 02:25 PM
>Aan: user-java@ibatis.apache.org 
>Onderwerp: Problems with groupBy
>

Help!!  I am having problems getting my groupBy to work. My query brings back 5 rows, but
the businessEmployeesList collection is not populated for any of the business objects. Here
is my mapping:  

<resultMap id="businessResult" class="business" groupBy="bus_Id">
    <result property=""  />  .................... <-- all properties for this table
</resultMap>

<resultMap id="empRoleResult" class="empRole" groupBy="emp_Id, bus_Id">
    <result property=""  />  ....................  <-- all properties for this table
</resultMap>

<resultMap id="busEmpRoleResult" class="business" extends="businessResult">
    <result property="businessEmployeesList" resultMap="Business.empRoleResult" />
</resultMap>

<select id="getBusEmpRoleByIdNum" parameterClass="java.lang.String" resultMap="busEmpRoleResult">
SELECT *
FROM AIDDB2.BUSINESS AS A
INNER JOIN AIDDB2.ROLE AS B ON A.BUS_ID = B.BUS_ID
WHERE BUS_ID_NUM = #value#
</select>

I am using ArrayList list = (ArrayList)getSqlMapExecutor().queryForList("getBusEmpRoleByIdNum",
idNumber.trim());  to get the data

When I debug this, it appears the businessEmployeesList collection is null, which would seem
to make sense since it appears from the debug statements that the role is being built after
the list is populated (I have debug statements in the constructors).  Where are the Role records
going?  I can see they are being built, but the List I get back only seems to have the 5 business
objects!  I have tried removing the groupBy on the businessResult map, adding it to the busEmpRoleResult
map and every combination of the two, but no approach seems to work.  Does anybody have any
suggestions?  Thanks!!  

[4/7/06 6:50:38:125 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Business - Building Business
[4/7/06 6:50:38:125 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Business - Adding new business list with null employees for common.model.Business@a890
[4/7/06 6:50:38:141 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Role - Building Role
[4/7/06 6:50:38:141 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Business - Building Business
[4/7/06 6:50:38:141 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Business - Adding new business list with null employees for common.model.Business@a890
[4/7/06 6:50:38:141 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Role - Building Role
[4/7/06 6:50:38:141 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Business - Building Business
[4/7/06 6:50:38:141 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Business - Adding new business list with null employees for common.model.Business@a890
[4/7/06 6:50:38:156 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Role - Building Role
[4/7/06 6:50:38:156 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Business - Building Business
[4/7/06 6:50:38:156 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Business - Adding new business list with null employees for common.model.Business@a890
[4/7/06 6:50:38:156 CDT] 792fe35e SystemOut     O  * Servlet.Engine.Transports : 0 *  * DEBUG
common.model.Role - Building Role

Mime
View raw message