springboot + mybatis 双向一对多注解查询

springboot + mybatis 双向一对多注解查询

表结构:

user:
在这里插入图片描述

role:

在这里插入图片描述

1. user 与 role 的entity

public class User implements Serializable {

	private Integer id;

	private String name;

	private Gender gender;

	private List<Role> roleList;
	
	get set ......
}

public class Role implements Serializable {

	private Integer id;

	private String role;

	private User user;
   
    get set ......
}

2.user与role mapper

@Repository
public interface UserMapper {

	@Select("select id,name,gender from mk_user")
	@Results({@Result(id = true, column = "id", property = "id"),
			@Result(column = "name", property = "name"),
			@Result(column = "gender", property = "gender",typeHandler = EnumTypeHandler.class),
			@Result(property = "roleList", column = "id", javaType = List.class, many = @Many(select = "com.demo.mapper.RoleMapper.getRoleByUserId"))})
	List<User> findAll();

	@Select("select id, name from mk_user where id = #{id}")
	@Results({
			@Result(id = true, column = "id", property = "id"),
			@Result(column = "name", property = "name")
			})
	User findByUserId(Integer id);
}

@Repository
public interface RoleMapper {

	@Select("select * from mk_role where user_id = #{userId}")
	@Results({
			@Result(column = "id", property = "id"),
			@Result(column = "role", property = "role")
	})
	List<Role> getRoleByUserId(Integer userId);

	@Select("select * from mk_role")
	@Results({
			@Result(column = "id", property = "id"),
			@Result(column = "role", property = "role"),
			@Result(column = "user_id",property = "user" ,javaType = User.class,one = @One(select = "com.demo.mapper.UserMapper.findByUserId"))
	})
	List<Role> findAll();
}

猜你喜欢

转载自blog.csdn.net/weixin_43866295/article/details/86591653