Mybatis discriminator 鉴别器

discriminator 鉴别器的使用场景

以下代码中,如果查出的员工信息性别为女,则创建员工的部门信息,如果为男。则将email属性赋值为数据库gender列的值。

<resultMap type="com.mxthd.mybatis.bean.Employee" id="MyEmpDis">
    <id column="id" property="id"></id>
    <result column="last_name" property="lastName"></result>
    <result column="email" property="email"/>
    <result column="gender" property="gender"/>
    <!-- column:指定要判定的数据库列名 
     javaType:列值对应的java类型
    -->
    <discriminator javaType="string" column="gender">
        <!-- 女生 resultType:指定封装-->
        <case value="0" resultType="com.mxthd.mybatis.bean.Employee">
            <association property="dept" column="d_id" 
                         select="com.mxthd.mybatis.dao.DeparmentMapper.getDeptById" fetchType="eager"/>
        </case>
        <!-- 男生 -->
        <case value="1" resultType="com.mxthd.mybatis.bean.Employee">
            <!-- 【这里有一个坑】
      column        :   数据库的列名
      property  :   resultType指定实体类的属性
      将column指定列名的值付给property指定的属性
      -->
            <result column="gender" property="email"/>
        </case>
    </discriminator>
</resultMap>
原文链接:,转发请注明来源!

发表评论