先說想要的結果
希望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 = ?) 雖然多加了一個括號但是期望的效果達到了。