文章目录
鉴别器<discriminator/>
鉴别器,可以简单的理解为在<resultMap/>
中的swith:case
语句。
鉴别器的结构
<discriminator javaType="int" column="vehicle_type">
<case value="1" resultMap="carResult"/>
<case value="2" resultMap="truckResult"/>
<case value="3" resultMap="vanResult"/>
<case value="4" resultMap="suvResult"/>
</discriminator>
上面的例子是说,vehicle_type这一列是int类型,根据vehicle_type值的不同,有以下四种行为。
当vehicle_type的值为1时,使用craResult进行封装;
当vehicle_type的值为2时,使用truckResult进行封装…
必要的属性
对于<discriminator>
来说,它的两个必要的属性就是javaType
和column
,它们相当于指定了switch(x)
中x的类型,以及它在结果集的哪列。
对于<case>
来说,它也有两个必要的属性,value
,相当于switch-case中的case :
。第二个属性是resultMap
或者resultType
举例(摘自官方文档)
<resultMap id="vehicleResult" type="Vehicle