mybatis-plus-QueryWrapper 如何写or效果的语句 以及如何给or加括号


   先说想要的结果

  希望mybatis-plus中QueryWrapper写法生成的sql语句中查询条件是 WHERE (( (LOGIN_ID = ? OR SHI_JI_LOGIN_ID = ?) ) AND START_YEAR = ?)  红色部分加一个括号

 

  第一次尝试

        QueryWrapper<KjProjectList> queryWrapper = new QueryWrapper<>();
        queryWrapper .eq("LOGIN_ID", "admin");
        queryWrapper .or().eq("SHI_JI_LOGIN_ID", "admin"); 
        queryWrapper .eq("START_YEAR","2016");

这样写出来的where 条件是:WHERE ( LOGIN_ID = ? OR SHI_JI_LOGIN_ID = ? AND START_YEAR = ?)  并没有在希望的地方增加一个括号

最终写法

        QueryWrapper<KjProjectList> queryWrapper = new QueryWrapper<>();
        queryWrapper .and((wrapper) -> {
            wrapper.eq("LOGIN_ID", "admin").or().eq("SHI_JI_LOGIN_ID", "admin");
        });
        queryWrapper .eq("START_YEAR","2016");

好成了where条件变成了:WHERE (( (LOGIN_ID = ? OR SHI_JI_LOGIN_ID = ?) ) AND START_YEAR = ?)  虽然多加了一个括号但是期望的效果达到了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM