mybatis-plus的${ew.sqlSegment}的and问题

${ew.customSqlSegment} 不需要where标签包裹

${ew.sqlSegment} 需要where,在条件的开头会不会自动拼接and?在3.x版本好像去掉了在开头拼接and(我看源码下来,没有看到有拼接and,如果在哪里有,请告知下,谢谢),所以就自己去拼接and了,简单继承了下。

MyQueryWrapper.java
/**
 *
 * <p>
 *     mybatis plus 3.10以后的版本 {@link AbstractWrapper#getSqlSegment()}不支持在sql开头自动添加and,所以需要自己添加and。
 *     使用方式与原先基本一致,在sql中使用时使用${ew.sql}获取sql语句
 * </p>
 */
public class MyQueryWrapper extends QueryWrapper {

    public String getSql() {
        return WrapperUtil.concatAnd(this);
    }
}
WrapperUtil.java
public class WrapperUtil {

    public static String concatAnd(QueryWrapper queryWrapper) {
        String sql = queryWrapper.isEmptyOfNormal() ? "" : "and " + queryWrapper.getSqlSegment();
        return sql;
    }

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐