mybatis-plus 列表关联查询
时间: 2023-09-20 08:11:11 浏览: 91
Mybatis-Plus 支持通过注解和 XML 配置方式实现列表关联查询,以下是两种方式的示例:
1. 注解方式
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
@Select("SELECT * FROM user u LEFT JOIN role_user ru ON u.id = ru.user_id WHERE ru.role_id = #{roleId}")
List<User> selectUserListByRoleId(@Param("roleId") Long roleId);
}
```
2. XML 配置方式
```xml
<mapper namespace="com.example.mapper.UserMapper">
<resultMap id="userRoleMap" type="com.example.entity.User">
<id column="id" property="id" />
<result column="username" property="username" />
<collection property="roles" ofType="com.example.entity.Role">
<id column="role_id" property="id" />
<result column="role_name" property="name" />
</collection>
</resultMap>
<select id="selectUserListByRoleId" resultMap="userRoleMap">
SELECT u.*, r.id as role_id, r.name as role_name
FROM user u
LEFT JOIN role_user ru ON u.id = ru.user_id
LEFT JOIN role r ON r.id = ru.role_id
WHERE r.id = #{roleId}
</select>
</mapper>
```
以上两种方式都是通过 SQL 实现列表关联查询,其中 XML 配置方式还可以使用 resultMap 实现结果映射,可以更加灵活和易于维护。
阅读全文