Closed richwxd closed 1 month ago
建议修改一下,这样不方便
当前绕过写法:
MPJLambdaWrapper<SysMenuEntity> queryWrapper = new MPJLambdaWrapper<SysMenuEntity>() .select(SysMenuEntity::getAuthority) .rightJoin(SysRoleMenuEntity.class, SysRoleMenuEntity::getMenuId, SysMenuEntity::getId) .rightJoin(SysUserRoleEntity.class, SysUserRoleEntity::getRoleId ,SysRoleMenuEntity::getRoleId) .eq(SysUserRoleEntity::getUserId, userId) .eq(SysRoleMenuEntity::getDeleted, 0) .eq(SysMenuEntity::getDeleted, 0) .orderByAsc(SysMenuEntity::getSort); return selectJoinList(String.class, queryWrapper);
.leftJoin(SysMenuEntity.class, SysRoleMenuEntity::getMenuId, SysMenuEntity::getId)
后面两个参数换个位置
当前使用版本(必填,否则不予处理)
1.4.11
该问题是如何引起的?(确定最新版也有问题再提!!!)
原SQL
select t3.authority from sys_user_role t1 left join sys_role_menu t2 on t1.role_id = t2.role_id left join sys_menu t3 on t2.menu_id = t3.id where t1.user_id = #{userId} and t1.deleted = 0 and t2.deleted = 0 and t3.deleted = 0 order by t3.sort asc
写法:MPJLambdaWrapper<SysMenuEntity> queryWrapper = new MPJLambdaWrapper<SysMenuEntity>() .select(SysMenuEntity::getAuthority) .select(SysMenuEntity::getAuthority) .leftJoin(SysRoleMenuEntity.class, SysUserRoleEntity::getRoleId, SysRoleMenuEntity::getRoleId) .leftJoin(SysMenuEntity.class, SysRoleMenuEntity::getMenuId, SysMenuEntity::getId) .eq(SysUserRoleEntity::getUserId, userId) .eq(SysRoleMenuEntity::getDeleted, 0) .eq(SysMenuEntity::getDeleted, 0) .orderByAsc(SysMenuEntity::getSort); return selectJoinList(String.class, queryWrapper);
重现步骤(如果有就写完整)
报错信息
报错信息:reason: no instance(s) of type variable(s) exist so that SysRoleMenuEntity conforms to SysUserRoleEntity