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
