描述
当自定义@SELECT语句后,直接传wrapper到方法上不行.
解决思路
在 MybatisPlus官方文档
上有一个方法:
注意事项:
需要mybatis-plus版本 >= 3.0.7 param 参数名要么叫ew,
要么加上注解@Param(Constants.WRAPPER) 使用
${ew.customSqlSegment} 不支持 Wrapper 内的entity生成where语句
用注解
1 2
| @Select("select * from mysql_data ${ew.customSqlSegment}") List<MysqlData> getAll(@Param(Constants.WRAPPER) Wrapper wrapper);
|
用XML
1
| List<MysqlData> getAll(Wrapper ew);
|
1 2 3 4
| <select id="getAll" resultType="MysqlData"> SELECT * FROM mysql_data ${ew.customSqlSegment} </select>
|
链式调用 lambda 式
1 2 3 4 5 6 7 8 9 10 11 12 13
|
UpdateChainWrapper<T> update();
LambdaUpdateChainWrapper<T> lambdaUpdate();
query().eq("id",value).one(); lambdaQuery().eq(Entity::getId,value).one();
update().eq("id",value).remove(); lambdaUpdate().eq(Entity::getId,value).remove();
|
本文地址: https://github.com/maxzhao-it/blog/post/26362/