在实体类的属性上使用@QueryWapper
/**
* 角色名称
*/
@QueryWapper(QueryCondition = QueryConditionEnum.LIKE)
private String roleName;
QueryConditionEnum.Like 意味着当roleName有值时会进行模糊查询,没有值则不会查询。
QueryConditionEnum里有多个条件类型,具体不一一介绍。
使用注意事项:
使用此注解必须结合以下代码,否则不会生效。
QueryWrapper<SysRole> queryWrapper = QueryWrapperUtil.initQueryWrapper(role);
QueryWrapperUtil.initQueryWrapper()方法,里面封装了动态排序,数据权限和 注解查询条件拼接。
该注解必须使用在和数据库字段相对应的属性上,否则可能会报数据库找不到当前字段的错误。
如果你不在实体类上声明查询方式,系统默认不会进行拼接,需要你进行手动拼接条件。例:
QueryWrapper<SysRole> queryWrapper = QueryWrapperUtil.initQueryWrapper(role);
queryWrapper.lambda().eq(SysRole::getRoleCode,role.getRoleCode());
看上面代码可以注意到,该注解是基于mybati-plus的,只能使用单表,无法进行多表关联查询,如若多表关联查询,建议使用原始mybatis的xml编写sql。