-
引言
当我们使用mybatis-plus时,需要写一些复杂的sql,其中某些表可能使用到表别名,在自定义SQL中使用时,通过queryWrapper进行查询时,可能会导致Column ‘AAA’ in where clause is ambiguous错误。为了避免此问题,可以通过如下解决。 -
userMapper
/** * * 如果自定义的方法还希望能够使用MP提供的Wrapper条件构造器,则需要如下写法 * * @param userWrapper * @return */ @Select(value = "SELECT u1.*,d.name AS deptname,u2.name AS leadername FROM sys_user u1 " + "LEFT JOIN sys_dept d ON u1.deptid = d.id LEFT JOIN sys_user u2 ON u1.mgr=u2.id ${ew.customSqlSegment}") List<UserVo> queryUserInfoList(IPage<UserVo> page,@Param(Constants.WRAPPER)Wrapper<User> queryWrapper);
-
测试使用
Page<UserVo> iPage = new Page<>(userVo.getPage(),userVo.getLimit());
QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
queryWrapper.eq("u1.type", 1);
List<UserVo> users = userMapper.queryUserInfoList(iPage,queryWrapper );