使用这个Map可以自动填充RatingResult的client。
<resultMap id="SimpleRatingResult" type="RatingResult">
<id property="ratingID" column="ratingID"/>
<result property="clientType" column="clientType"/>
<association property="client" column="{credentialType=credentialType, credentialNo=credentialNo}" select="ClientMapper.getIndividualByTypeAndID"/>
</resultMap>
而使用加了discriminator的Map,RatingResult的client为null。其他均未做改动。
<resultMap id="SimpleRatingResult" type="RatingResult">
<id property="ratingID" column="ratingID"/>
<result property="clientType" column="clientType"/>
<discriminator javaType="ClientType" column="clientType">
<case value="INDIVIDUAL" resultType="RatingResult">
<association property="client" column="{credentialType=credentialType, credentialNo=credentialNo}" select="ClientMapper.getIndividualByTypeAndID"/>
</case>
<case value="CORPORATE" resultType="RatingResult">
<association property="client" column="{credentialType=credentialType, credentialNo=credentialNo}" select="CorporateMapper.getCorporateByTypeAndID"/>
</case>
</discriminator>
</resultMap>
数据库表字段为: