場景:查詢中間表對應的用戶和角色,這裏一條中間表數據分別只對應一個用戶和一個角色。固然通常不會有這樣的需求,這裏只是舉例一對一關係.java
1、數據結構sql
一、用戶表數據結構
二、角色表ui
三、中間表code
2、xml自定義sqlxml
<resultMap type="com.xiao.permission_system.entity.UerRole" id="BaseColumn"> <id column="id" property="id" /> <result column="uid" property="uid" /> <result column="role_id" property="roleId" /> <association property="users" javaType="com.xiao.permission_system.entity.UserInfo"> <id column="id" property="id" /> <result column="username" property="username" /> <result column="password" property="password" /> </association> <association property="roles" javaType="com.xiao.permission_system.entity.Role"> <id column="id" property="id" /> <result column="name" property="name" /> </association> </resultMap> <sql id="base"> ur.uid, ur.role_id </sql> <sql id="userColumn"> u.id, u.username, u.password </sql> <sql id="roleColumn"> r.id, r.name </sql> <select id="getRoles" resultMap="BaseColumn"> select <include refid="base" />, <include refid="userColumn" />, <include refid="roleColumn" /> from sys_uer_role ur LEFT JOIN sys_user_info u on u.id=ur.uid LEFT join sys_role r on r.id=ur.role_id where uid=#{uid} </select>
3、中間表實體blog
@Data @EqualsAndHashCode(callSuper = true) @Accessors(chain = true) @TableName("sys_uer_role") public class UerRole extends BaseEntity{ private static final long serialVersionUID = 1L; /** * 主鍵 */ @TableId() private String id; private String uid; private String roleId; private UserInfo users; private Role roles; }