mybatis级联查询
来源:互联网 发布:网络攻击追踪溯源 编辑:程序博客网 时间:2024/05/23 18:08
http://www.cnblogs.com/dyllove98/p/3202906.html
1.定义四个实体。User Role Privilege Resource,他们之间的对于关系为
2.需求:我通过用户名username查找出该用户对应的角色以及角色对应的权限和资源
3.实体
public class User implements Serializable {private String id;private String username;private String password;private Set<Role> role = new HashSet<Role>();}public class Role implements Serializable {private String id;private String name;private String des;private Set<Privilege> privilege = new HashSet<Privilege>();}public class Privilege implements Serializable { private String id; private String name; private String des;private Set<Resource> resource = new HashSet<Resource>(); private Privilege parent;private Set<Privilege> child = new HashSet<Privilege>();}public class Resource implements Serializable {private String id;private String uri;private String des;}
4.UserMapper.xml的查询方法为
<resultMap type="user" id="userResult"><id column="id" property="id"/><result column="username" property="username"/><collection property="role" javaType="java.util.Set" resultMap="roleResult"/></resultMap><resultMap type="role" id="roleResult"><id column="rid" property="id"/><result column="rname" property="name"/><result column="rdes" property="des"/><collection property="privilege" javaType="java.util.Set" resultMap="privilegeResult"/></resultMap><resultMap type="privilege" id="privilegeResult"><id column="pid" property="id"/><result column="pname" property="name"/><collection property="resource" javaType="java.util.Set" resultMap="resourceResult"/></resultMap><resultMap type="resource" id="resourceResult"><id column="resid" property="id"/><result column="resuri" property="uri"/></resultMap><select id="findUserByUserName" parameterType="string" resultMap="userResult"> select u.id,u.username,r.id as rid,r.name as rname,r.des as rdes,p.id as pid,p.name as pname,res.id as resid,res.uri as resuri from tb_user u left join user_role ur on ur.user_id=u.id join tb_role r on r.id=ur.role_id join role_privilege rp on rp.role_id=r.id join tb_privilege p on p.id=rp.privilege_id join tb_resource res on res.privilege_id=p.id where u.username=#{username} </select>
5.UserMapper.java定义方法
@Componentpublic interface UserMapper {User findUserByUserName(@Param(value="username")String username);}
0 0
- mybatis 级联查询
- mybatis特性--- 级联查询
- MyBatis 的级联查询
- mybatis级联查询
- Mybatis级联查询
- mybatis级联查询
- mybatis级联查询
- MyBatis 级联查询
- mybatis级联查询
- Mybatis 中级联查询方式
- mybatis同表级联查询
- Mybatis级联查询和缓存
- MyBatis总结(2)--级联查询
- MyBatis 级联查询,一对一,一对多
- mybatis级联查询的新写法
- Mybatis级联删除、修改、查询问题
- mybatis学习-- 级联查询 注解式写法
- Mybatis级联查询对象为null
- POJ 1236 强联通分量
- Android性能调优
- 用if语句随机生成十个数,排序
- 原生js实现简洁的返回顶部组件
- iOS NSBundle文件与nib文件——iOS 编码复习(十)
- mybatis级联查询
- Chapte3---使用字符串
- 转向移动端UI/UX设计有哪些必知的设计要点
- UnityEditor 如何将一个资源文件夹下的对象拖曳赋值到文件夹外的某个对象组件属性中
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
- VR体验优化
- jquery checkbox勾选/取消勾选的诡异问题
- Maven依赖Scope标签用法
- 自己常用Linux命令的记录--查看硬件相关信息,内核的编译,网络的配置