Linux 拨号vps windows公众号手机端

mybatisplus多表联查的方法是什么

lewis 8年前 (2017-02-12) 阅读数 7 #程序编程
文章标签 MyBatisplus

MyBatis-Plus提供了多种方法来实现多表联查,具体取决于你想要使用的查询方式和复杂度的不同。

以下是一些常用的方法:

1、使用<"https://github.com/Join" title="@Join" class="at-link" "">@Join注解:通过在实体类中使用<"https://github.com/Join" title="@Join" class="at-link" "">@Join注解来定义多表联查的关联关系,然后使用MyBatis-Plus的查询方法进行查询。

@Data
public class User {
    @TableId
    private Long id;
    private String name;
    private Long roleId;

    @Join(column = "role_id", type = Join.Type.LEFT)
    private Role role;
}

@Data
public class Role {
    @TableId
    private Long id;
    private String roleName;
}

// 查询代码
User user = userMapper.selectById(1L);

2、使用Wrapper查询构造器:使用MyBatis-Plus提供的Wrapper查询构造器,可以自由组合多个条件进行多表联查。

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user.id", 1L)
        .leftJoin("role", "role.id = user.role_id")
        .select("user.*, role.role_name");

User user = userMapper.selectOne(queryWrapper);

3、使用自定义SQL:如果以上方法无法满足需求,可以使用自定义SQL来实现多表联查。

@Select("SELECT u.*, r.role_name FROM user u LEFT JOIN role r ON u.role_id = r.id WHERE u.id = #{id}")
User selectUserWithRoleById(Long id);

以上是一些常见的多表联查方法,你可以根据具体情况选择合适的方法来实现多表联查。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门