mybatisplus LambdaQueryWrapper 塞固定的字符串值

由于本人喜欢用LambdaQueryWrapper 不喜欢用 QueryWrapper 的前提下,每张表都有一个delete_status和status状态,写查询接口的时候都是 CV编程不太舒服。因此想到构造一个统一的方法去把这俩值塞入。
采用 apply() 根据文档来,如图。
在这里插入图片描述
工具方法,采用泛型方法,实现每次可以获取到自己所需的 带泛型的LambdaQueryWrapper

public class SuperEntity<T extends Model<?>> extends Model<T> {
 /**
     * 构造 LambdaQueryWrapper 并置入指定的 属性值与名称
     */
    public static <R> LambdaQueryWrapper<R> getLambdaQueryWrapper(Class<R> clazz, PropertiesNameAndValueModel... propertiesNameAndValueModels){
        LambdaQueryWrapper<R> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        String template = "{0}={1}";
        Stream.of(propertiesNameAndValueModels).forEach(item->{
            String format = MessageFormat.format(template, item.getName(), item.getValue());
            lambdaQueryWrapper.apply(format);
        });
        return lambdaQueryWrapper;
    }

    /**
     * 构造 LambdaQueryWrapper 并置入指定的 删除与状态的值
     */
    public static <R> LambdaQueryWrapper<R> getLambdaQueryWrapper(Class<R> clazz){
        PropertiesNameAndValueModel deleteStatus = new PropertiesNameAndValueModel("delete_status", CommonEnum.IsJudge.FALSE.getCode().toString());
        PropertiesNameAndValueModel status = new PropertiesNameAndValueModel("status", CommonEnum.IsJudge.TRUE.getCode().toString());
        return getLambdaQueryWrapper(clazz,deleteStatus,status);
    }
}

入参实体,存放属性名和属性值

@Data
@NoArgsConstructor
@AllArgsConstructor
public class PropertiesNameAndValueModel implements Serializable {
    private static final long serialVersionUID = 6088163419961691009L;

    /**
     * 属性名
     */
    private String name;

    /**
     * 属性值
     */
    private String value;
}

调用方

LambdaQueryWrapper<Product> lambdaQueryWrapper = SuperEntity.getLambdaQueryWrapper(Product.class);

留言:老婆做了一个小红书账号,全是瓷砖方面的干货,大佬们如果有需求或者有兴趣可以移步了解一下,嘻嘻~

小红书地址,GO GO GO!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值