当自定义@SELECT语句后,直接传wrapper到方法上就行不通了
List<ArticleVo> list = articleDao.queryList(page,queryWrapper);
@Select("SELECT\n" +
"\tarticle.*, category. NAME category_name\n" +
"FROM\n" +
"\tarticle\n" +
"LEFT JOIN category ON article.category_id = category.category_id\n" )
List<ArticleVo> queryList(Page<ArticleVo> page, QueryWrapper wrapper);这时候查阅MybatisPlus官方文档,发现了一个新方法
@Select("select * from mysql_data ${ew.customSqlSegment}")
List<MysqlData> getAll(@Param(Constants.WRAPPER) Wrapper wrapper);只需添加 ${ew.customSqlSegment}和@Param(Constants.WRAPPER)即可
改造例子后
List<ArticleVo> list = articleDao.queryList(page,queryWrapper);
@Select("SELECT\n" +
"\tarticle.*, category. NAME category_name\n" +
"FROM\n" +
"\tarticle\n" +
"LEFT JOIN category ON article.category_id = category.category_id\n" +
"${ew.customSqlSegment} ")
List<ArticleVo> queryList(Page<ArticleVo> page,@Param(Constants.WRAPPER) QueryWrapper wrapper);即可进行条件查询,减少了手动传参的复杂度和冗余度
有什么问题可以评论或者私信我,每日在线解(LIAO)疑(SAO)。
我是大誌,一位准备996的卑微码农?,觉得好用记得点赞收藏!!!