<resultMap id="policySrcResult"
class="Policy">
<result column="POLICY_NUMBER"
property="policyNumber" jdbcType="VARCHAR" />
<result column="POL_TYPE" property="polType" jdbcType="VARCHAR"
/>
<result column="BUSINESS_ENTITY"
property="busEntity" jdbcType="VARCHAR" />
<result column="YRS_IN_BUS" property="yrsInBus" jdbcType="VARCHAR"
/>
<result
property="policyDetail.BUSINESS_ENTITY"
column="BUSINESS_ENTITY"/>
<result property="policyDetail.YRS_IN_BUS"
column="YRS_IN_BUS"/>
</resultMap>
public class
Policy{
private Policy policyDetail = null;
private String
busEntity;
private String yrsInBus;
private String policyNumber =
null;
private String polType = null;
getters/setters.....
}
<resultMap
id="policySrcResult" class="Policy">
<result
column="POLICY_NUMBER" property="policyNumber" jdbcType="VARCHAR"
/>
<result column="POL_TYPE" property="polType"
jdbcType="VARCHAR" />
<result
column="BUSINESS_ENTITY" property="busEntity" jdbcType="VARCHAR"
/>
<result column="YRS_IN_BUS"
property="yrsInBus" jdbcType="VARCHAR" />
<result property="policyDetail"
column="{polType=POL_TYPE,policyNumber=POLICY_NUMBER}"
select="getPolicyDetail"/>
</resultMap>
<resultMap
id="policyDetailResults" class="Policy">
<result
column="BUSINESS_ENTITY" property="busEntity" jdbcType="VARCHAR" />
<result column="YRS_IN_BUS" property="yrsInBus" jdbcType="VARCHAR"
/>
</resultMap>
<select
id="getPolicyDetail" parameterClass="Policy"
resultMap="policyDetailResults">
SELECT
BUSINESS_ENTITY, YRS_IN_BUS
FROM
<dynamic>
<isEqual property="polType"
compareValue="N"> CPP_DETAIL </isEqual>
<isEqual property="polType" compareValue="U"> UMB_DETAIL
</isEqual>
<isEqual property="polType"
compareValue="Q"> UMB_FARM_DETAIL </isEqual>
<isEqual property="polType" compareValue="X"> CA_DETAIL
</isEqual>
<isEqual property="polType"
compareValue="B"> BOPS_DETAIL </isEqual>
<isEqual property="polType" compareValue="F"> CPP_FARM_DETAIL
</isEqual>
</dynamic>
WHERE POLICY_NUMBER=#policyNumber#
</select>