iBATIS sqlmap с groupby, как предотвратить пустую запись на дочернем элементе - PullRequest
2 голосов
/ 17 июня 2011

Нужна помощь с sqlmap group by. Я получаю пустой дочерний объект, когда нет дочерних отношений

<resultMap id="GrpMap" class="Grp" groupBy="GroupId">
   <result column="grp_id" property="GroupId" jdbcType="UUID"/>
   <result column="nm" property="name" jdbcType="VARCHAR"/> 
   <result property="children" resultMap="Groups.childMap"/>
</resultMap>


<resultMap id="childMap" class="child">        
    <result column="child_ky" property="childKey" jdbcType="UUID"/>
    <result column="name" property="name" jdbcType="VARCHAR"/>
</resultMap>

есть ли способ указать, что если нет детей, то не заполнять отношения? Мой sql-запрос является левым внешним соединением, поэтому возвращает нулевые записи для дочернего элемента.

Я хочу сделать что-то вроде isnotNull column = "child_ky", чтобы дочерний элемент не заполнялся

<resultMap id="GrpMap" class="Grp" groupBy="GroupId">
   <result column="grp_id" property="GroupId" jdbcType="UUID"/>
   <result column="nm" property="name" jdbcType="VARCHAR"/> 
   <isnotnull child_ky>
   <result property="children" resultMap="Groups.childMap"/>
   </inotnull>
</resultMap>

1 Ответ

3 голосов
/ 28 июня 2011

iBatis предлагает параметр notNullColumn для тега результата:

<resultMap id="GrpMap" class="Grp" groupBy="GroupId">
  [...]
  <result property="children" resultMap="Groups.childMap" notNullColumn="child_ky"/>
</resultMap>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...