0


SpringBoot - MyBatis-Plus - 如何在查询时排除某些字段?

写在前面

查询时部分字段不想给前端显示,怎么办?

(1)使用SELECT方法,排除字段"password"
@OverridepublicPage<UserDO>list(String name,Integer status,Integer pageNo,Integer limit,Long adminId)throwsServiceException{QueryWrapper<UserDO> wrapper =newQueryWrapper<>();if(!ObjectUtils.isEmpty(name)){
        wrapper.like("name", name);}if(status !=null){
        wrapper.eq("status", status);}
    wrapper.select(UserDO.class, user ->!user.getColumn().equals("password")&&!user.getColumn().equals("salary"));
    wrapper.orderByDesc("id");return userMapper.selectPage(Page.div(pageNo, limit,UserDO.class), wrapper);}// 生成的SQL语句为:SELECT id,presenter,qq,wx,mail,name,id_no,id_card_front,id_card_back,phone,
salt,ali_mp_open_id,wx_mp_open_id,wx_h5_open_id,wx_app_open_id,nickname,
avatar_url,province,city,county,level,gmt_vip_expire,birthday,gender,gmt_last_login,
last_login_ip,status,gmt_update,gmt_create 
FROM mcsx_user ORDER BY id DESC LIMIT ?
(2)使用SELECT方法,只显示某些字段
@OverridepublicPage<UserDO>list(String name,Integer status,Integer pageNo,Integer limit,Long adminId)throwsServiceException{QueryWrapper<UserDO> wrapper =newQueryWrapper<>();if(!ObjectUtils.isEmpty(name)){
        wrapper.like("name", name);}if(status !=null){
        wrapper.eq("status", status);}
    wrapper.select("id","name","level","qq","wx","gmt_last_login");
    wrapper.orderByDesc("id");return userMapper.selectPage(Page.div(pageNo, limit,UserDO.class), wrapper);}// 生成的SQL语句为:SELECT id,name,level,qq,wx,gmt_last_login FROM mcsx_user ORDER BY id DESC LIMIT ?
(3)使用@TableField(exist = false),排除某些字段

注:表示当前属性不是数据库的字段,但在项目中必须使用,这样的话在新增/查询等使用BEAN时,MyBatis-Plus都会忽略这个属性,所以推荐使用方法1和方法2。

@Data@ApiEntity(description ="用户领域模型表")@TableName("mcsx_user")publicclassUserDOextendsSuperDO{@ApiField(description ="推荐者")privateLong presenter;@TableField(exist =false)@ApiField(description ="QQQQ号")privateString qq;@TableField(exist =false)@ApiField(description ="微信号")privateString wx;@ApiField(description ="电子邮箱")privateString mail;@ApiField(description ="姓名")privateString name;@ApiField(description ="身份证号")privateString idNo;...}// 生成的SQL语句为:SELECT id,presenter,mail,name,id_no,id_card_front,id_card_back,phone,
salt,ali_mp_open_id,wx_mp_open_id,wx_h5_open_id,wx_app_open_id,nickname,
avatar_url,province,city,county,level,gmt_vip_expire,birthday,gender,gmt_last_login,
last_login_ip,status,gmt_update,gmt_create FROM mcsx_user ORDER BY id DESC LIMIT ?
标签: spring boot

本文转载自: https://blog.csdn.net/goodjava2007/article/details/131392043
版权归原作者 cloneme01 所有, 如有侵权,请联系我们删除。

“SpringBoot - MyBatis-Plus - 如何在查询时排除某些字段?”的评论:

还没有评论