Nested groupBy -------------- Key: IBATIS-442 URL: https://issues.apache.org/jira/browse/IBATIS-442 Project: iBatis for Java Issue Type: Bug Components: SQL Maps Affects Versions: 2.1.6 Environment: Win XP, JBoss 4 Reporter: raja chawat
How do we add per-resultMap uniqueKeys? I don't see any example. Please help. My resultset is like: I have a list of instructors in a group, and every instructor can teach a list of courses. My problem is an instructor can belong to multiple groups. I see instructor only in 1 group. And I see list of components repeated for that instructor for every group that he/she belongs to. And if I remove the 2nd groupBy, I see instructor in multiple groups. But in each group, it is listed n number of times, where n is the number of courses he/she can teach. Am I doing something wrong here, please comment. How do I resolve this issue? Also, the regionID can be same as groupByID, since I am grouping dynamically. I have "select region_id as group_by_id". <resultMap id="GroupVOXResultMap" class="GroupVOX" groupBy="groupByID"> <result property="groupByID" column="group_by_id"/> <result property="groupByDesc" column="group_by_desc"/> <result property="instructorVOXList" resultMap="Scheduler.InstructorVOXResultMap"/> </resultMap> <resultMap id="InstructorVOXResultMap" class="InstructorVOX" groupBy="instructorID"> <result property="instructorID" column="inst_id"/> <result property="firstName" column="fname"/> <result property="middleInitial" column="mi"/> <result property="lastName" column="lname"/> <result property="regionID" column="region_id"/> <result property="regionDesc" column="region_desc"/> <result property="cpntPKs" resultMap="Scheduler.ComponentPKResultMap"/> </resultMap> <resultMap id="ComponentPKResultMap" class="ComponentPK"> <result property="componentTypeID" column="cpnt_typ_id"/> <result property="componentID" column="cpnt_id"/> <result property="revisionDate" column="rev_dte"/> </resultMap> I found a workaround for this problem. If you add regionID to the groupBy in the innerMap, it works. Only thing is both regionID and groupID are same columns referenced by different names. It will fail, if you use "groupID" in the inner resultmap. Is this a bug? Do the keys in the groupBy have to be unique? <resultMap id="GroupVOXResultMap" class="GroupVOX" groupBy="groupByID"> <result property="groupByID" column="group_by_id"/> <result property="groupByDesc" column="group_by_desc"/> <result property="instructorVOXList" resultMap="Scheduler.InstructorVOXResultMap"/> </resultMap> <resultMap id="InstructorVOXResultMap" class="InstructorVOX" groupBy="regionID, instructorID"> <result property="instructorID" column="inst_id"/> <result property="firstName" column="fname"/> <result property="middleInitial" column="mi"/> <result property="lastName" column="lname"/> <result property="regionID" column="region_id"/> <result property="regionDesc" column="region_desc"/> <result property="cpntPKs" resultMap="Scheduler.ComponentPKResultMap"/> </resultMap> <resultMap id="ComponentPKResultMap" class="ComponentPK"> <result property="componentTypeID" column="cpnt_typ_id"/> <result property="componentID" column="cpnt_id"/> <result property="revisionDate" column="rev_dte"/> </resultMap> -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.