如何用mybatis实现多对多

来源:互联网 发布:大数据面试题 编辑:程序博客网 时间:2024/06/16 14:08

首先用户和角色的关系就是多对多



实体类中对应多个角色




中间表 中写角色的实体类




mapper中依次与上述对象对应

  <resultMap type="sy.model.User" id="ResultMap3"  extends="BaseResultMap">


 <!--  user对应多个中间表记录,所以用 -->
  <collection property="userRole" javaType="list"  ofType="sy.model.UserRole">
  <id property="id"   column="userrole_id"/>
  <result property="roleId"   column="role_id"/>
  <result property="userId"   column="user_id"/>

中间表中对应role的实体类
  <association property="role" javaType="sy.model.Role" >
  <id property="id"   column="role_id"/>
  <result property="text"   column="role_text"/>
  </association>
  </collection>
  </resultMap>
  
  <select id="getAll3" resultMap="ResultMap3">
SELECT
tuser.ID,
tuser.CREATEDATETIME,
tuser.MODIFYDATETIME,
tuser.`NAME`,
tuser.PWD,
tuser.CREATE_TIME,
tuser.UPDATE_TIME,
tuser_trole.ID userrole_id,
tuser_trole.ROLE_ID role_id,
tuser_trole.USER_ID user_id,
trole.ID role_id,
trole.TEXT role_text
FROM
tuser
JOIN tuser_trole ON tuser.ID = tuser_trole.USER_ID
JOIN trole ON tuser_trole.ROLE_ID = trole.ID
</select>


这样就是多对多了

原创粉丝点击