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