当前位置: 代码迷 >> 综合 >> Mybatis实现一对多查询
  详细解决方案

Mybatis实现一对多查询

热度:99   发布时间:2024-02-01 18:03:41.0

业务中经常遇到一对多的场景,例如一名员工可能拥有多个职务。

@Data
public class UserInfo implements Serializable {private Long id;private String userCode;private String userName;private String sex;private String userPhone;/*** 该员工职务列表*/private List<PostInfo> postInfoList;
}

Mybatis提供了collection标签帮助我们简化这种一对多关系的查询。

resultMap中的collection标签可以对指定属性进行进一步封装。

  • property:属性名称
  • ofType:属性类型
  • select:关联的查询方法
  • column:关联字段
    <resultMap id="userInfoResultMap" type="com.xxx.UserInfo"><id column="id" property="id" jdbcType="BIGINT"/><result column="user_code" property="userCode" jdbcType="VARCHAR"/><result column="user_name" property="userName" jdbcType="VARCHAR"/><result column="sex" property="sex" jdbcType="VARCHAR"/><result column="user_phone" property="userPhone" jdbcType="VARCHAR"/><collection property="postInfoList"ofType="com.xxx.PostInfo"select="com.xxx.UserPostInfoMapper.getPostByUserCode"column="user_code"/></resultMap><select id="getUserByUserCode" resultMap="userInfoResultMap">SELECTid,user_code,user_name,sex,user_phoneFROM t_user_base_infoWHERE user_code = #{userCode,jdbcType=VARCHAR}LIMIT 1</select>

 

  相关解决方案