MyBatis-Plus 注解方式(一对多、多对一)

简介: MyBatis-Plus 注解方式(一对多、多对一)

UserMapper.java

@Repository
public interface UserMapper extends BaseMapper<User> {
  //多对一
    @Results(value = {
            @Result(property = "id", column = "id"),
            @Result(property = "name", column = "name"),
            @Result(property = "age", column = "age"),
            @Result(property = "email", column = "email"),
            @Result(property = "dept", column = "deptid", one = @One(select = "com.atguigu.mybatisplus.mapper.DeptMapper.selectById")),
    })
    @Select("select id, name, age, email, deptid from t_user")
    List<UserVO> getUserDept();
    @Select("select id, name, age, email from t_user where deptid=#{deptid}")
    List<User> getUserByDeptId(@Param("deptid") int deptid);
}


DeptMapper.java

public interface DeptMapper extends BaseMapper<Dept> {
  //一对多
    @Results(value = {
            @Result(property = "id", column = "id"),
            @Result(property = "name", column = "name"),
            @Result(property = "users", column = "id", many = @Many(select = "com.atguigu.mybatisplus.mapper.UserMapper.getUserByDeptId")),
    })
    @Select("select id, name from t_dept")
    List<DeptVO> getDeptUser();
}


DeptVO

@Data
public class DeptVO {
    private Integer id;
    private String name;
    private List<User> users;
}


UserVO

@Data
public class UserVO {
    private int id;
    private String name;
    private int age;
    private String email;
    private Dept dept;
}


调用

@SpringBootTest
class MybatisplusApplicationTests {
    @Resource
    private IUserService userService;
    @Resource
    private IDeptService deptService;
    @Test
    void contextLoads() {
        List<UserVO> userDept = userService.getUserDept();
        userDept.forEach(System.out::println);
        List<DeptVO> deptUser = deptService.getDeptUser();
        deptUser.forEach(System.out::println);
    }
}
相关文章
|
8天前
|
SQL XML Java
【mybatis】第二篇:@Select注解中加入字段判断
【mybatis】第二篇:@Select注解中加入字段判断
|
8天前
|
SQL 缓存 Java
mybatis 一对多查询
mybatis 一对多查询
27 0
|
8天前
|
Java 数据库连接 mybatis
mybatis的一对多
mybatis的一对多
|
8天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
8天前
|
存储 XML Java
mybatis使用内部类处理一对多类型数据2
mybatis使用内部类处理一对多类型数据2
16 0
|
8天前
|
Java 数据库连接 mybatis
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
26 0
|
8天前
|
XML SQL Java
mybatis的一对多,多对一,以及多对对的配置和使用
mybatis的一对多,多对一,以及多对对的配置和使用
18 2
|
8天前
|
SQL Java 数据库连接
mybatis关联配置(一对多配置)
mybatis关联配置(一对多配置)
14 1
|
8天前
|
Java 数据库连接 网络安全
mybatis使用全注解的方式案例(包含一对多关系映射)
mybatis使用全注解的方式案例(包含一对多关系映射)
13 0
|
8天前
|
关系型数据库 Java 数据库连接
如何利用Mybatis-Plus自动生成代码(超详细注解)
如何利用Mybatis-Plus自动生成代码(超详细注解)
74 1