首页 > 其他分享 > Mybatis-Plus 自定义xml多对多分页查询带条件

Mybatis-Plus 自定义xml多对多分页查询带条件

时间:2022-10-14 11:46:19浏览次数:67  
标签:xml String 自定义 private Plus query id name

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>

标签:xml,String,自定义,private,Plus,query,id,name
From: https://www.cnblogs.com/marchxd/p/16791113.html

相关文章

  • mybatis plus 多表联查
    1、先定义mapper中的方法/***获取地址*/@Select("SELECTa.id,"+"a.mid,"+"m.membername,"+"a.address,"......
  • Mybatis-Plus 自定义xml分页
    1.定义实体类@TableName("role")@DatapublicclassRole{@TableIdprivateStringid;privateStringname;}2.定义mapper接口publicinterfaceRol......
  • 注解_自定义注解_属性定义与注解_自定义注解_元注解
    注解_自定义注解_属性定义注解格式:public@interface注解名称{属性列表}属性:接口中的抽象方法要求:1.属性的返回值类型有下列取值......
  • 自定义表格设置
    实现功能   使用方法:#实现功能:1:支持锁定表格列2:支持新增和增减表格列3:实现拖拽排序#使用方法一:页面导入importGtableSettingfrom"@/components/Gtabl......
  • fastadmin dialog 自定义弹窗名称标题
    fastadmin列表页中的button,通过js定义后,弹出新的dialog。正常情况下,名称是通过js中的title字段去定义,如果想自定义名称,则对title字段进行修改,代码如下所示{......
  • Vue面试题32:你用过自定义指令吗?(总结自B站up主‘前端杨村长’视频,仅供自用学习)
    分析:这是一道API题,我们可能写的自定义指令少,但是我们用的多呀,多举几个例子就行;使用://Vue2directives:{focus:{inserted(el,binding,vnode){el.f......
  • C# Winform label自定义大小与居中,文字自动换行,背景透明和导入图片
    在Winform中,默认情况下,label是根据文本自动调整大小的,不能自由设置其宽度和高度,不管怎么修改其宽度与高度,它都会变回原来的值。难道label大小不能自定义,当然不是,需要......
  • CF1542B Plus and Multiply
    CF1542BPlusandMultiply-洛谷|计算机科学教育新生态(luogu.com.cn)\(T=\{a^x+yb\text{}\vert\text{}x,y\inN\}\)和\(S\)相等。证明:\(S\subset......
  • 轻松学习XML教程
    XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个......
  • XML指南——XML数据岛
    使用IE5.0或者更高的版本,XML数据可以以数据岛的形式嵌入HTML页面。在HTML页面中嵌入XML数据使用非官方标准的<xml>标记可以将XML数据嵌入到HTML页面中。XML数据可以象下面的......