MyBatis 和 jeesite多表查询
有时候经常碰到多级联查,比如通过某个功能A表查角色信息,但是A表和角色表没有直接的关联关系,需要通过用户表进行关联,所以就需要多级关联查询出来了(下面的只是举例,实际应用用户和角色不会这样设计字段)
一、MyBatis xml文件手写resultMap和查询语句
1、MyBatis配置文件:因为是通过column(数据库字段名称)和property(实体类对象名称)进行数据绑定的,如果存在相同字段的名字可以用as修改字段名称也能进行特殊绑定
<resultMap type="User" id="UserResult">
<!-- 表字段 -->
<result property="xxxxxxxxxId" column="xxxxxxxxx_id"/>
<!-- 通用字段和关联字段 -->
<result property="userId" column="user_id"/>
<result property="status" column="status"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
<result property="scriptJson" column="script_json"/>
<!-- 关联查询 -->
<association property="user" column="user_id" javaType="User" resultMap="UserResult"/>
</resultMap>
<resultMap type="User" id="UserResult">
<id property="userId" column="user_id"/>
<result property="userName" column="user_name"/>
<id property="roleId" column="role_id"/>
<!-- 二级关联查询 -->
<association property="role" column="role_id" javaType="Role" resultMap="RoleResult"/>
</resultMap>
<resultMap type="Role" id="RoleResult">
<id property="roleId" column="role_id"/>
<result property="roleName" column="role_name"/>
</resultMap>


