【Mybatis-plus-join】 自定义别名和返回map类型

Metadata

title: 【Mybatis-plus-join】 自定义别名和返回map类型
date: 2023-01-22 19:08
tags:
  - 行动阶段/完成
  - 主题场景/组件
  - 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
  - 细化主题/Module/Mybatis-plus-join
categories:
  - Mybatis-plus-join
keywords:
  - Mybatis-plus-join
description: 【Mybatis-plus-join】 自定义别名和返回map类型

【Mybatis-plus-join】 自定义别名和返回map类型

JoinLambdaWrapper<Users> wrapper = joinLambdaQueryWrapper(Users.class, "userMaster");

wrapper
       .select(Users::getUserId, Users::getUserName)
          // leftJoin innerJoin rightJoin 三个参数代表使用默认别名,四个参数代表使用自定义别名
       .leftJoin(UsersAge.class, UsersAge::getId, Users::getAgeId, "u_age")
       .select(UsersAge::getAgeDoc).end()
       .leftJoin(UsersAge.class, UsersAge::getId, Users::getAgeId, "u_a")
       .select(UsersAge::getAgeName).end();

// 需要注意的是当返回参数为map的时候是没有下划线转驼峰的,如果需要请自行配置mybatis的下划线转驼峰
List<Map> dataList = super.joinList(wrapper, Map.class);
SELECT
    userMaster.user_id,
    userMaster.user_name,
    u_age.age_doc,
    u_a.age_name 
FROM
    users AS userMaster
    LEFT JOIN users_age AS u_age ON u_age.id = userMaster.age_id
    LEFT JOIN users_age AS u_a ON u_a.id = userMaster.age_id;