Mybatis-Plus 自定义xml多对多分页查询带条件
1.定义实体类
@Data
@TableName("user")
public class User{
@TableId
private String id;
@TableField("username")
private String name;
private String password;
@TableField(exist = false)
private List<Role> roles;
}
@TableName("role")
@Data
public class Role {
@TableId
private String id;
private String name;
@TableField(exist = false)
private List<User> users;
}
2.定义mapper
//自定义xml多对多分页查询带条件
IPage<User> getUserAndRolePageByCondition(IPage<User> page,@Param("query") User query);
3.编写xml
<resultMap id="getUserAndRolePageByConditionMap" type="com.hj.entity.User">
<id property="id" column="id"/>
<result column="username" property="name"/>
<result column="password" property="password"/>
<collection property="roles" ofType="com.hj.entity.Role">
<id property="id" column="rid"/>
<result property="name" column="rname"/>
</collection>
</resultMap>
<select id="getUserAndRolePageByCondition" resultMap="getUserAndRolePageByConditionMap">
select u.id, u.username, u.password, r.id rid, r.name rname
from user u
left join user_role ur
on u.id = ur.uid
left join role r
on r.id = ur.rid
<where>
<if test="query.id != null and query.id != ''">
and u.id = #{query.id}
</if>
<if test="query.name != null and query.name != ''">
and u.username = #{query.name}
</if>
</where>
</select>
分类:
Mybatis-plus
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律