All,

I'm new to iBATIS (like it!). I followed the example in " iBATIS DAta MApper Developer Guide". I made it work for select based on single column (for example selectElements based on single column). but I got into one problem with multi columns. Here is my map file. (sorry for complexity).

 <typeAlias alias="clientSession" type="session.SimpleClientSessionInfo"/>
  <typeAlias alias="parameter" type="session.SimpleSessionParameter"/>
  <typeAlias alias="client" type="session.SimpleClient"/>
  <typeAlias alias="element" type="session.SimpleSessionParameterElement"/>
 
  <resultMap id="select-sessionClient" class="clientSession">
      <result property="brandId" column="brand_id" />
      <result property="client" column="{brandId=brand_id, version=version_number}" select="selectClient" />
      <result property="parameters" column="{brandId=brand_id, version=version_number}" select="selectElements" />
  </resultMap>

  <resultMap id="select-element" class="element">
      <result property="value" column="parameter_value" />
      <result property="parameter" column="parameter_id" select="selectParameter" />
  </resultMap>

  <resultMap id="select-parameter" class="parameter">
      <result property="parameterId" column="parameter_id" />
      <result property="name" column="parameter_name"/>
      <result property="description" column="description"/>
  </resultMap>
 
  <resultMap id="select-client" class="client">
      <result property="brandId" column="brand_id" />
      <result property="version" column="version_number"/>
      <result property="isDefault" column="is_default"/>
  </resultMap>
 
  <statement id="selectElements" resultMap="select-element">
    select * from SESSION_INFO_PER_CLIENT where brand_id=#brandId# and version_number=#version#
  </statement>
 
  <statement id="selectClient" resultMap="select-client">
    select * from CLIENT_VERSION where brand_id=#brandId# and version_number=#version#
  </statement>

  <statement id="selectParameter" parameterClass="string" resultMap="select-parameter">
    select * from SESSION_PARAMETER where parameter_id=#parameterId#
  </statement>

  <statement id="getClientSessionInfoList" resultMap="select-sessionClient">
    select DISTINCT brand_id, version_number from SESSION_INFO_PER_CLIENT
  </statement>

  <statement id="getClientSessionInfo" parameterClass="map" resultMap="select-sessionClient">
    select DISTINCT brand_id, version_number from SESSION_INFO_PER_CLIENT having brand_id=#brandId# and version_number=#version#
  </statement>

Everything worked  fine, but the client and parameters (list) are empty in the final object, clientSession. looks like the brandId and version were not passed into selectClient and selectElements.

appreciate your input.

Tony

Reply via email to